Merge branch 'master' into wii-usb
This commit is contained in:
commit
0caf693d1c
|
@ -27,9 +27,7 @@ obj/
|
||||||
[Rr]elease*/
|
[Rr]elease*/
|
||||||
_ReSharper*/
|
_ReSharper*/
|
||||||
[Tt]est[Rr]esult*
|
[Tt]est[Rr]esult*
|
||||||
Binary/Win32
|
Binary
|
||||||
Binary/x64
|
|
||||||
Binary/Darwin*
|
|
||||||
Source/Core/Common/Src/scmrev.h
|
Source/Core/Common/Src/scmrev.h
|
||||||
*.opensdf
|
*.opensdf
|
||||||
*.sdf
|
*.sdf
|
||||||
|
|
|
@ -6,12 +6,8 @@ cmake_minimum_required(VERSION 2.6)
|
||||||
# Update compiler before calling project()
|
# Update compiler before calling project()
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
# Use clang compiler
|
# Use clang compiler
|
||||||
set(CMAKE_C_COMPILER "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang")
|
set(CMAKE_C_COMPILER "clang")
|
||||||
set(CMAKE_CXX_COMPILER "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++")
|
set(CMAKE_CXX_COMPILER "clang++")
|
||||||
if (NOT EXISTS "${CMAKE_CXX_COMPILER}")
|
|
||||||
set(CMAKE_C_COMPILER "clang")
|
|
||||||
set(CMAKE_CXX_COMPILER "clang++")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
project(dolphin-emu)
|
project(dolphin-emu)
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/CMakeTests)
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/CMakeTests)
|
||||||
|
@ -126,10 +122,6 @@ if(UNIX AND NOT APPLE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
# Ignore MacPorts and Fink and any other locally installed packages that
|
|
||||||
# might prevent building a distributable binary.
|
|
||||||
set(CMAKE_SYSTEM_PREFIX_PATH /usr)
|
|
||||||
set(ENV{PATH} /usr/bin:/bin:/usr/sbin:/sbin)
|
|
||||||
|
|
||||||
# Some of our code contains Objective C constructs.
|
# Some of our code contains Objective C constructs.
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -x objective-c")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -x objective-c")
|
||||||
|
@ -144,7 +136,7 @@ if(APPLE)
|
||||||
# This is inserted into the Info.plist as well.
|
# This is inserted into the Info.plist as well.
|
||||||
# Note that the SDK determines the maximum version of which optional
|
# Note that the SDK determines the maximum version of which optional
|
||||||
# features can be used, not the minimum required version to run.
|
# features can be used, not the minimum required version to run.
|
||||||
set(OSX_MIN_VERSION "10.5.4")
|
set(OSX_MIN_VERSION "10.6")
|
||||||
set(TARGET_FLAGS "${TARGET_FLAGS} -mmacosx-version-min=${OSX_MIN_VERSION}")
|
set(TARGET_FLAGS "${TARGET_FLAGS} -mmacosx-version-min=${OSX_MIN_VERSION}")
|
||||||
set(SYSROOT_LEGACY_PATH "/Developer/SDKs/MacOSX10.6.sdk")
|
set(SYSROOT_LEGACY_PATH "/Developer/SDKs/MacOSX10.6.sdk")
|
||||||
set(SYSROOT_PATH "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk")
|
set(SYSROOT_PATH "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk")
|
||||||
|
@ -153,9 +145,9 @@ if(APPLE)
|
||||||
elseif(EXISTS "${SYSROOT_LEGACY_PATH}/")
|
elseif(EXISTS "${SYSROOT_LEGACY_PATH}/")
|
||||||
set(TARGET_SYSROOT ${SYSROOT_LEGACY_PATH})
|
set(TARGET_SYSROOT ${SYSROOT_LEGACY_PATH})
|
||||||
endif()
|
endif()
|
||||||
if(${TARGET_SYSROOT})
|
if(TARGET_SYSROOT)
|
||||||
set(TARGET_FLAGS "${TARGET_FLAGS} -isysroot ${TARGET_SYSROOT}")
|
set(TARGET_FLAGS "${TARGET_FLAGS} -isysroot ${TARGET_SYSROOT}")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-syslibroot,${TARGET_SYSROOT}")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mmacosx-version-min=${OSX_MIN_VERSION} -Wl,-syslibroot,${TARGET_SYSROOT}")
|
||||||
endif()
|
endif()
|
||||||
# Do not warn about frameworks that are not available on all architectures.
|
# Do not warn about frameworks that are not available on all architectures.
|
||||||
# This avoids a warning when linking with QuickTime.
|
# This avoids a warning when linking with QuickTime.
|
||||||
|
@ -218,6 +210,7 @@ if(FASTLOG)
|
||||||
add_definitions(-DDEBUGFAST)
|
add_definitions(-DDEBUGFAST)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
add_definitions(-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE)
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
# Dependency checking
|
# Dependency checking
|
||||||
|
@ -392,17 +385,26 @@ else()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||||
include(FindSDL OPTIONAL)
|
include(FindSDL2 OPTIONAL)
|
||||||
endif()
|
endif()
|
||||||
if(SDL_FOUND)
|
if(SDL2_FOUND)
|
||||||
message("Using shared SDL")
|
message("Using shared SDL2")
|
||||||
include_directories(${SDL_INCLUDE_DIR})
|
include_directories(${SDL2_INCLUDE_DIR})
|
||||||
else(SDL_FOUND)
|
else(SDL2_FOUND)
|
||||||
# TODO: Use the prebuilt one on Windows
|
# SDL2 not found, try SDL
|
||||||
message("Using static SDL from Externals")
|
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||||
include_directories(Externals/SDL Externals/SDL/include)
|
include(FindSDL OPTIONAL)
|
||||||
add_subdirectory(Externals/SDL)
|
endif()
|
||||||
endif(SDL_FOUND)
|
if(SDL_FOUND)
|
||||||
|
message("Using shared SDL")
|
||||||
|
include_directories(${SDL_INCLUDE_DIR})
|
||||||
|
else(SDL_FOUND)
|
||||||
|
# TODO: Use the prebuilt one on Windows
|
||||||
|
message("Using static SDL from Externals")
|
||||||
|
include_directories(Externals/SDL Externals/SDL/include)
|
||||||
|
add_subdirectory(Externals/SDL)
|
||||||
|
endif(SDL_FOUND)
|
||||||
|
endif(SDL2_FOUND)
|
||||||
|
|
||||||
set(SFML_FIND_VERSION TRUE)
|
set(SFML_FIND_VERSION TRUE)
|
||||||
set(SFML_FIND_VERSION_MAJOR 1)
|
set(SFML_FIND_VERSION_MAJOR 1)
|
||||||
|
@ -478,7 +480,7 @@ endif()
|
||||||
option(DISABLE_WX "Disable wxWidgets (use CLI interface)" OFF)
|
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 gl)
|
||||||
|
|
||||||
if(wxWidgets_FOUND)
|
if(wxWidgets_FOUND)
|
||||||
EXECUTE_PROCESS(
|
EXECUTE_PROCESS(
|
||||||
|
@ -489,8 +491,13 @@ if(NOT DISABLE_WX)
|
||||||
ERROR_QUIET
|
ERROR_QUIET
|
||||||
)
|
)
|
||||||
message("Found wxWidgets version ${wxWidgets_VERSION}")
|
message("Found wxWidgets version ${wxWidgets_VERSION}")
|
||||||
if(${wxWidgets_VERSION} VERSION_LESS "2.9.4")
|
if(UNIX AND NOT APPLE)
|
||||||
message("At least 2.9.4 is required; ignoring found version")
|
set(wxMIN_VERSION "2.9.3")
|
||||||
|
else()
|
||||||
|
set(wxMIN_VERSION "2.9.4")
|
||||||
|
endif()
|
||||||
|
if(${wxWidgets_VERSION} VERSION_LESS ${wxMIN_VERSION})
|
||||||
|
message("At least ${wxMIN_VERSION} is required; ignoring found version")
|
||||||
unset(wxWidgets_FOUND)
|
unset(wxWidgets_FOUND)
|
||||||
endif()
|
endif()
|
||||||
endif(wxWidgets_FOUND)
|
endif(wxWidgets_FOUND)
|
||||||
|
@ -567,8 +574,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")
|
||||||
|
|
||||||
|
|
||||||
add_definitions(-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE)
|
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
# Optional Targets
|
# Optional Targets
|
||||||
# TODO: Add DSPSpy and TestSuite.
|
# TODO: Add DSPSpy and TestSuite.
|
||||||
|
|
|
@ -55,8 +55,8 @@ endmacro()
|
||||||
|
|
||||||
macro(check_libav)
|
macro(check_libav)
|
||||||
if(PKG_CONFIG_FOUND)
|
if(PKG_CONFIG_FOUND)
|
||||||
pkg_check_modules(LIBAV libavcodec>=53.5.0 libavformat>=53.2.0
|
pkg_check_modules(LIBAV libavcodec>=53.35.0 libavformat>=53.21.0
|
||||||
libswscale>=2.0.0 libavutil>=51.7.0)
|
libswscale>=2.1.0 libavutil>=51.22.1)
|
||||||
else()
|
else()
|
||||||
message("pkg-config is required to check for libav")
|
message("pkg-config is required to check for libav")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -0,0 +1,180 @@
|
||||||
|
# Locate SDL2 library
|
||||||
|
# This module defines
|
||||||
|
# SDL2_LIBRARY, the name of the library to link against
|
||||||
|
# SDL2_FOUND, if false, do not try to link to SDL2
|
||||||
|
# SDL2_INCLUDE_DIR, where to find SDL.h
|
||||||
|
#
|
||||||
|
# This module responds to the the flag:
|
||||||
|
# SDL2_BUILDING_LIBRARY
|
||||||
|
# If this is defined, then no SDL2_main will be linked in because
|
||||||
|
# only applications need main().
|
||||||
|
# Otherwise, it is assumed you are building an application and this
|
||||||
|
# module will attempt to locate and set the the proper link flags
|
||||||
|
# as part of the returned SDL2_LIBRARY variable.
|
||||||
|
#
|
||||||
|
# Don't forget to include SDL2main.h and SDL2main.m your project for the
|
||||||
|
# OS X framework based version. (Other versions link to -lSDL2main which
|
||||||
|
# this module will try to find on your behalf.) Also for OS X, this
|
||||||
|
# module will automatically add the -framework Cocoa on your behalf.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Additional Note: If you see an empty SDL2_LIBRARY_TEMP in your configuration
|
||||||
|
# and no SDL2_LIBRARY, it means CMake did not find your SDL2 library
|
||||||
|
# (SDL2.dll, libsdl2.so, SDL2.framework, etc).
|
||||||
|
# Set SDL2_LIBRARY_TEMP to point to your SDL2 library, and configure again.
|
||||||
|
# Similarly, if you see an empty SDL2MAIN_LIBRARY, you should set this value
|
||||||
|
# as appropriate. These values are used to generate the final SDL2_LIBRARY
|
||||||
|
# variable, but when these values are unset, SDL2_LIBRARY does not get created.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# $SDL2DIR is an environment variable that would
|
||||||
|
# correspond to the ./configure --prefix=$SDL2DIR
|
||||||
|
# used in building SDL2.
|
||||||
|
# l.e.galup 9-20-02
|
||||||
|
#
|
||||||
|
# Modified by Eric Wing.
|
||||||
|
# Added code to assist with automated building by using environmental variables
|
||||||
|
# and providing a more controlled/consistent search behavior.
|
||||||
|
# Added new modifications to recognize OS X frameworks and
|
||||||
|
# additional Unix paths (FreeBSD, etc).
|
||||||
|
# Also corrected the header search path to follow "proper" SDL2 guidelines.
|
||||||
|
# Added a search for SDL2main which is needed by some platforms.
|
||||||
|
# Added a search for threads which is needed by some platforms.
|
||||||
|
# Added needed compile switches for MinGW.
|
||||||
|
#
|
||||||
|
# On OSX, this will prefer the Framework version (if found) over others.
|
||||||
|
# People will have to manually change the cache values of
|
||||||
|
# SDL2_LIBRARY to override this selection or set the CMake environment
|
||||||
|
# CMAKE_INCLUDE_PATH to modify the search paths.
|
||||||
|
#
|
||||||
|
# Note that the header path has changed from SDL2/SDL.h to just SDL.h
|
||||||
|
# This needed to change because "proper" SDL2 convention
|
||||||
|
# is #include "SDL.h", not <SDL2/SDL.h>. This is done for portability
|
||||||
|
# reasons because not all systems place things in SDL2/ (see FreeBSD).
|
||||||
|
#
|
||||||
|
# Ported by Johnny Patterson. This is a literal port for SDL2 of the FindSDL.cmake
|
||||||
|
# module with the minor edit of changing "SDL" to "SDL2" where necessary. This
|
||||||
|
# was not created for redistribution, and exists temporarily pending official
|
||||||
|
# SDL2 CMake modules.
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
# Copyright 2003-2009 Kitware, Inc.
|
||||||
|
#
|
||||||
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
|
#=============================================================================
|
||||||
|
# (To distribute this file outside of CMake, substitute the full
|
||||||
|
# License text for the above reference.)
|
||||||
|
|
||||||
|
FIND_PATH(SDL2_INCLUDE_DIR SDL.h
|
||||||
|
HINTS
|
||||||
|
$ENV{SDL2DIR}
|
||||||
|
PATH_SUFFIXES include/SDL2 include
|
||||||
|
PATHS
|
||||||
|
~/Library/Frameworks
|
||||||
|
/Library/Frameworks
|
||||||
|
/usr/local/include/SDL2
|
||||||
|
/usr/include/SDL2
|
||||||
|
/sw # Fink
|
||||||
|
/opt/local # DarwinPorts
|
||||||
|
/opt/csw # Blastwave
|
||||||
|
/opt
|
||||||
|
)
|
||||||
|
#MESSAGE("SDL2_INCLUDE_DIR is ${SDL2_INCLUDE_DIR}")
|
||||||
|
|
||||||
|
FIND_LIBRARY(SDL2_LIBRARY_TEMP
|
||||||
|
NAMES SDL2
|
||||||
|
HINTS
|
||||||
|
$ENV{SDL2DIR}
|
||||||
|
PATH_SUFFIXES lib64 lib
|
||||||
|
PATHS
|
||||||
|
/sw
|
||||||
|
/opt/local
|
||||||
|
/opt/csw
|
||||||
|
/opt
|
||||||
|
)
|
||||||
|
|
||||||
|
#MESSAGE("SDL2_LIBRARY_TEMP is ${SDL2_LIBRARY_TEMP}")
|
||||||
|
|
||||||
|
IF(NOT SDL2_BUILDING_LIBRARY)
|
||||||
|
IF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework")
|
||||||
|
# Non-OS X framework versions expect you to also dynamically link to
|
||||||
|
# SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms
|
||||||
|
# seem to provide SDL2main for compatibility even though they don't
|
||||||
|
# necessarily need it.
|
||||||
|
FIND_LIBRARY(SDL2MAIN_LIBRARY
|
||||||
|
NAMES SDL2main
|
||||||
|
HINTS
|
||||||
|
$ENV{SDL2DIR}
|
||||||
|
PATH_SUFFIXES lib64 lib
|
||||||
|
PATHS
|
||||||
|
/sw
|
||||||
|
/opt/local
|
||||||
|
/opt/csw
|
||||||
|
/opt
|
||||||
|
)
|
||||||
|
ENDIF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework")
|
||||||
|
ENDIF(NOT SDL2_BUILDING_LIBRARY)
|
||||||
|
|
||||||
|
# SDL2 may require threads on your system.
|
||||||
|
# The Apple build may not need an explicit flag because one of the
|
||||||
|
# frameworks may already provide it.
|
||||||
|
# But for non-OSX systems, I will use the CMake Threads package.
|
||||||
|
IF(NOT APPLE)
|
||||||
|
FIND_PACKAGE(Threads)
|
||||||
|
ENDIF(NOT APPLE)
|
||||||
|
|
||||||
|
# MinGW needs an additional library, mwindows
|
||||||
|
# It's total link flags should look like -lmingw32 -lSDL2main -lSDL2 -lmwindows
|
||||||
|
# (Actually on second look, I think it only needs one of the m* libraries.)
|
||||||
|
IF(MINGW)
|
||||||
|
SET(MINGW32_LIBRARY mingw32 CACHE STRING "mwindows for MinGW")
|
||||||
|
ENDIF(MINGW)
|
||||||
|
|
||||||
|
SET(SDL2_FOUND "NO")
|
||||||
|
IF(SDL2_LIBRARY_TEMP)
|
||||||
|
# For SDL2main
|
||||||
|
IF(NOT SDL2_BUILDING_LIBRARY)
|
||||||
|
IF(SDL2MAIN_LIBRARY)
|
||||||
|
SET(SDL2_LIBRARY_TEMP ${SDL2MAIN_LIBRARY} ${SDL2_LIBRARY_TEMP})
|
||||||
|
ENDIF(SDL2MAIN_LIBRARY)
|
||||||
|
ENDIF(NOT SDL2_BUILDING_LIBRARY)
|
||||||
|
|
||||||
|
# For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa.
|
||||||
|
# CMake doesn't display the -framework Cocoa string in the UI even
|
||||||
|
# though it actually is there if I modify a pre-used variable.
|
||||||
|
# I think it has something to do with the CACHE STRING.
|
||||||
|
# So I use a temporary variable until the end so I can set the
|
||||||
|
# "real" variable in one-shot.
|
||||||
|
IF(APPLE)
|
||||||
|
SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} "-framework Cocoa")
|
||||||
|
ENDIF(APPLE)
|
||||||
|
|
||||||
|
# For threads, as mentioned Apple doesn't need this.
|
||||||
|
# In fact, there seems to be a problem if I used the Threads package
|
||||||
|
# and try using this line, so I'm just skipping it entirely for OS X.
|
||||||
|
IF(NOT APPLE)
|
||||||
|
SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
ENDIF(NOT APPLE)
|
||||||
|
|
||||||
|
# For MinGW library
|
||||||
|
IF(MINGW)
|
||||||
|
SET(SDL2_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL2_LIBRARY_TEMP})
|
||||||
|
ENDIF(MINGW)
|
||||||
|
|
||||||
|
# Set the final string here so the GUI reflects the final state.
|
||||||
|
SET(SDL2_LIBRARY ${SDL2_LIBRARY_TEMP} CACHE STRING "Where the SDL2 Library can be found")
|
||||||
|
# Set the temp variable to INTERNAL so it is not seen in the CMake GUI
|
||||||
|
SET(SDL2_LIBRARY_TEMP "${SDL2_LIBRARY_TEMP}" CACHE INTERNAL "")
|
||||||
|
|
||||||
|
SET(SDL2_FOUND "YES")
|
||||||
|
ENDIF(SDL2_LIBRARY_TEMP)
|
||||||
|
|
||||||
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
|
|
||||||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2
|
||||||
|
REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR)
|
|
@ -0,0 +1,16 @@
|
||||||
|
# GAXE5D - The Ant Bully
|
||||||
|
[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]
|
|
@ -15,3 +15,6 @@ PH_ZFar = 1.99998
|
||||||
[Gecko]
|
[Gecko]
|
||||||
[Video_Settings]
|
[Video_Settings]
|
||||||
SafeTextureCacheColorSamples = 512
|
SafeTextureCacheColorSamples = 512
|
||||||
|
[Video_Hacks]
|
||||||
|
EFBToTextureEnable = False
|
||||||
|
EFBCopyEnable = True
|
||||||
|
|
|
@ -15,3 +15,6 @@ PH_ZFar = 1.99998
|
||||||
[Gecko]
|
[Gecko]
|
||||||
[Video_Settings]
|
[Video_Settings]
|
||||||
SafeTextureCacheColorSamples = 512
|
SafeTextureCacheColorSamples = 512
|
||||||
|
[Video_Hacks]
|
||||||
|
EFBToTextureEnable = False
|
||||||
|
EFBCopyEnable = True
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# GIQE78 - The Incredibles 2
|
# GIQE78 - The Incredibles 2
|
||||||
[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 = Needs real XFB for videos to show up(r6898)
|
EmulationIssues = Needs real XFB for videos to show up.
|
||||||
EmulationStateId = 3
|
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.
|
||||||
$Master Code
|
$Master Code
|
||||||
|
|
|
@ -1,7 +1,16 @@
|
||||||
# GITE01 - Geist
|
# GITE01 - Geist
|
||||||
[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 = Very slow
|
EmulationIssues =
|
||||||
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.
|
||||||
|
[Video]
|
||||||
|
ProjectionHack = 0
|
||||||
|
PH_SZNear = 0
|
||||||
|
PH_SZFar = 0
|
||||||
|
PH_ExtraParam = 0
|
||||||
|
PH_ZNear =
|
||||||
|
PH_ZFar =
|
||||||
|
[Gecko]
|
||||||
|
|
|
@ -1,6 +1,16 @@
|
||||||
# GITP01 - Geist
|
# GITP01 - Geist
|
||||||
[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 = 1
|
EmulationIssues =
|
||||||
|
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]
|
||||||
|
|
|
@ -1,7 +1,18 @@
|
||||||
# GW2E78 - WWE Day of Reckoning 2
|
# GW2E78 - WWE Day of Reckoning 2
|
||||||
[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 = DSP/ARAM/Audio Streaming problem
|
EmulationIssues = Needs Efb to Ram for created fighters.
|
||||||
[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]
|
||||||
|
EFBToTextureEnable = False
|
||||||
|
EFBCopyEnable = True
|
||||||
|
|
|
@ -1,10 +1,18 @@
|
||||||
# GW2P78 - WWE Day of Reckoning 2
|
# GW2P78 - WWE Day of Reckoning 2
|
||||||
[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 = DSP/ARAM/Audio Streaming problem
|
EmulationIssues = Needs Efb to Ram for created fighters.
|
||||||
[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
|
||||||
|
|
|
@ -1,7 +1,18 @@
|
||||||
# GWPE78 - WWE Day of Reckoning
|
# GWPE78 - WWE Day of Reckoning
|
||||||
[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 =
|
EmulationIssues = Needs Efb to Ram for created fighters.
|
||||||
[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]
|
||||||
|
EFBToTextureEnable = False
|
||||||
|
EFBCopyEnable = True
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
# GWPJG2 - WWE Day of Reckoning
|
||||||
|
[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 Efb to Ram for created fighters.
|
||||||
|
[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
|
|
@ -0,0 +1,18 @@
|
||||||
|
# GWPP78 - WWE Day of Reckoning
|
||||||
|
[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 Efb to Ram for created fighters.
|
||||||
|
[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
|
|
@ -4,11 +4,6 @@
|
||||||
EmulationStateId = 4
|
EmulationStateId = 4
|
||||||
EmulationIssues = needs the frame cheats from ini
|
EmulationIssues = needs the frame cheats from ini
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
+$Patches
|
|
||||||
0x800FDCC0:dword:0x60000000
|
|
||||||
0x800FB0F0:dword:0x60000000
|
|
||||||
0x800FDF20:dword:0x60000000
|
|
||||||
0x8002363C:dword:0x60000000
|
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
$(m)
|
$(m)
|
||||||
C4116318 00000800
|
C4116318 00000800
|
||||||
|
|
|
@ -4,11 +4,6 @@
|
||||||
EmulationStateId = 4
|
EmulationStateId = 4
|
||||||
EmulationIssues = goes to before race with framepatch
|
EmulationIssues = goes to before race with framepatch
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
+$Patches
|
|
||||||
0x800FDAD8:dword:0x60000000
|
|
||||||
0x800FAF08:dword:0x60000000
|
|
||||||
0x800FDD38:dword:0x60000000
|
|
||||||
0x800235F0:dword:0x60000000
|
|
||||||
[Video]
|
[Video]
|
||||||
ProjectionHack = 0
|
ProjectionHack = 0
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
# R3DES5 - Dream Pinball 3d
|
||||||
|
[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 = Automatic framelimit is problematic.
|
||||||
|
[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
|
|
@ -0,0 +1,18 @@
|
||||||
|
# R3DPS5 - Dream Pinball 3d
|
||||||
|
[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 = Automatic framelimit is problematic.
|
||||||
|
[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
|
|
@ -0,0 +1,18 @@
|
||||||
|
# R8AE01 - Pokepark Wii
|
||||||
|
[Core] Values set here will override the main dolphin settings.
|
||||||
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
|
EmulationStateId = 4
|
||||||
|
EmulationIssues = NPCs sporadically disappear. Needs Efb to Ram for photos.
|
||||||
|
[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
|
|
@ -2,8 +2,11 @@
|
||||||
[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 = NPCs sporadically disappear.
|
EmulationIssues = NPCs sporadically disappear. Needs Efb to Ram for photos.
|
||||||
[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_Settings]
|
[Video_Settings]
|
||||||
SafeTextureCacheColorSamples = 512
|
SafeTextureCacheColorSamples = 512
|
||||||
|
[Video_Hacks]
|
||||||
|
EFBToTextureEnable = False
|
||||||
|
EFBCopyEnable = 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 = NPCs sporadically disappear.
|
EmulationIssues = NPCs sporadically disappear. Needs Efb to Ram for photos.
|
||||||
[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,6 @@ PH_ZFar =
|
||||||
[Gecko]
|
[Gecko]
|
||||||
[Video_Settings]
|
[Video_Settings]
|
||||||
SafeTextureCacheColorSamples = 512
|
SafeTextureCacheColorSamples = 512
|
||||||
|
[Video_Hacks]
|
||||||
|
EFBToTextureEnable = False
|
||||||
|
EFBCopyEnable = True
|
||||||
|
|
|
@ -1,24 +1,27 @@
|
||||||
# RMHE08 - Monster Hunter Tri
|
# RMHE08 - Monster Hunter Tri
|
||||||
[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.
|
||||||
EmulationIssues = Skip efb access from cpu needs to be enabled for direct 3d 9 & 11 to have playable speeds.
|
EmulationIssues = Skip efb access from cpu needs to be enabled for direct 3d 9 & 11 to have playable speeds.
|
||||||
EmulationStateId = 4
|
EmulationStateId = 4
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
+$Bloom OFF
|
+$Bloom OFF
|
||||||
0x04056FF4:dword:0xC022FFE4
|
0x04056FF4:dword:0xC022FFE4
|
||||||
0x0479DA84:dword:0x3F800000
|
0x0479DA84:dword:0x3F800000
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
[Video]
|
[Video]
|
||||||
ProjectionHack = 0
|
ProjectionHack = 0
|
||||||
PH_SZNear = 0
|
PH_SZNear = 0
|
||||||
PH_SZFar = 0
|
PH_SZFar = 0
|
||||||
PH_ExtraParam = 0
|
PH_ExtraParam = 0
|
||||||
PH_ZNear =
|
PH_ZNear =
|
||||||
PH_ZFar =
|
PH_ZFar =
|
||||||
[Gecko]
|
[Gecko]
|
||||||
[Video_Hacks]
|
[Video_Hacks]
|
||||||
EFBAccessEnable = False
|
EFBAccessEnable = False
|
||||||
EFBToTextureEnable = False
|
EFBToTextureEnable = False
|
||||||
EFBCopyEnable = True
|
EFBCopyEnable = True
|
||||||
EFBCopyCacheEnable = True
|
EFBCopyCacheEnable = True
|
||||||
|
[Video_Settings]
|
||||||
|
UseXFB = True
|
||||||
|
UseRealXFB = False
|
||||||
|
|
|
@ -1,24 +1,27 @@
|
||||||
# RMHJ08 - MONSTER HUNTER 3
|
# RMHJ08 - MONSTER HUNTER 3
|
||||||
[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.
|
||||||
EmulationIssues = Skip efb access from cpu needs to be enabled for direct 3d 9 & 11 to have playable speeds.
|
EmulationIssues = Skip efb access from cpu needs to be enabled for direct 3d 9 & 11 to have playable speeds.
|
||||||
EmulationStateId = 4
|
EmulationStateId = 4
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
0x805DD6D4:dword:0x60000000
|
0x805DD6D4:dword:0x60000000
|
||||||
0x805DD6D8:dword:0x60000000
|
0x805DD6D8:dword:0x60000000
|
||||||
0x805DD6DC:dword:0x60000000
|
0x805DD6DC:dword:0x60000000
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
[Video]
|
[Video]
|
||||||
ProjectionHack = 0
|
ProjectionHack = 0
|
||||||
PH_SZNear = 0
|
PH_SZNear = 0
|
||||||
PH_SZFar = 0
|
PH_SZFar = 0
|
||||||
PH_ExtraParam = 0
|
PH_ExtraParam = 0
|
||||||
PH_ZNear =
|
PH_ZNear =
|
||||||
PH_ZFar =
|
PH_ZFar =
|
||||||
[Gecko]
|
[Gecko]
|
||||||
[Video_Hacks]
|
[Video_Hacks]
|
||||||
EFBAccessEnable = False
|
EFBAccessEnable = False
|
||||||
EFBToTextureEnable = False
|
EFBToTextureEnable = False
|
||||||
EFBCopyEnable = True
|
EFBCopyEnable = True
|
||||||
EFBCopyCacheEnable = True
|
EFBCopyCacheEnable = True
|
||||||
|
[Video_Settings]
|
||||||
|
UseXFB = True
|
||||||
|
UseRealXFB = False
|
||||||
|
|
|
@ -1,16 +1,19 @@
|
||||||
# RMHP08 - Monster Hunter Tri
|
# RMHP08 - Monster Hunter Tri
|
||||||
[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.
|
||||||
EmulationIssues = Skip efb access from cpu needs to be enabled for direct 3d 9 & 11 to have playable speeds.
|
EmulationIssues = Skip efb access from cpu needs to be enabled for direct 3d 9 & 11 to have playable speeds.
|
||||||
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.
|
||||||
[Video]
|
[Video]
|
||||||
ProjectionHack = 0
|
ProjectionHack = 0
|
||||||
[Gecko]
|
[Gecko]
|
||||||
[Video_Hacks]
|
[Video_Hacks]
|
||||||
EFBAccessEnable = False
|
EFBAccessEnable = False
|
||||||
EFBToTextureEnable = False
|
EFBToTextureEnable = False
|
||||||
EFBCopyEnable = True
|
EFBCopyEnable = True
|
||||||
EFBCopyCacheEnable = True
|
EFBCopyCacheEnable = True
|
||||||
|
[Video_Settings]
|
||||||
|
UseXFB = True
|
||||||
|
UseRealXFB = False
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# RNOJ01 - Another Code R Kioku no Tobira
|
# RNOJ01 - Another Code R Kioku no Tobira
|
||||||
[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 = You can't interact with some objects ingame. Efb to Ram is needed for proper scene transition effect.
|
EmulationIssues = Efb to Ram is needed for proper scene transition effect.
|
||||||
EmulationStateId = 3
|
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]
|
[Video]
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# RNOP01 - Another Code:R
|
# RNOP01 - Another Code:R
|
||||||
[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 = You can't interact with some objects ingame. Efb to Ram is needed for proper scene transition effect.
|
EmulationIssues = Efb to Ram is needed for proper scene transition effect.
|
||||||
EmulationStateId = 3
|
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]
|
[Video]
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
# RODE01 - WarioWare: Smooth Moves
|
||||||
|
[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 =
|
||||||
|
[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
|
|
@ -0,0 +1,17 @@
|
||||||
|
# RODJ01 - WarioWare: Smooth Moves
|
||||||
|
[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 =
|
||||||
|
[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
|
|
@ -0,0 +1,17 @@
|
||||||
|
# RODK01 - WarioWare: Smooth Moves
|
||||||
|
[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 =
|
||||||
|
[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
|
|
@ -2,5 +2,16 @@
|
||||||
[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 =
|
||||||
[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
|
||||||
|
|
|
@ -4,4 +4,14 @@
|
||||||
EmulationStateId = 5
|
EmulationStateId = 5
|
||||||
EmulationIssues =
|
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_Settings]
|
||||||
|
EFBScale = 1
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
# RSFJ99 - Oboro Muramasa
|
||||||
|
[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_Settings]
|
||||||
|
EFBScale = 1
|
|
@ -1,10 +1,17 @@
|
||||||
# RSFP99 - MURAMASA: THE DEMON BLADE
|
# RSFP99 - MURAMASA: THE DEMON BLADE
|
||||||
[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 = 0
|
EmulationStateId = 5
|
||||||
EmulationIssues =
|
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
|
ProjectionHack = 0
|
||||||
|
PH_SZNear = 0
|
||||||
|
PH_SZFar = 0
|
||||||
|
PH_ExtraParam = 0
|
||||||
|
PH_ZNear =
|
||||||
|
PH_ZFar =
|
||||||
[Gecko]
|
[Gecko]
|
||||||
|
[Video_Settings]
|
||||||
|
EFBScale = 1
|
||||||
|
|
|
@ -10,8 +10,8 @@ ProjectionHack = 1
|
||||||
PH_SZNear = 0
|
PH_SZNear = 0
|
||||||
PH_SZFar = 0
|
PH_SZFar = 0
|
||||||
PH_ExtraParam = 0
|
PH_ExtraParam = 0
|
||||||
PH_ZNear =
|
PH_ZNear = 0.5
|
||||||
PH_ZFar = 0.7
|
PH_ZFar = 0.5
|
||||||
[Gecko]
|
[Gecko]
|
||||||
[Video_Hacks]
|
[Video_Hacks]
|
||||||
EFBToTextureEnable = False
|
EFBToTextureEnable = False
|
||||||
|
|
|
@ -10,8 +10,8 @@ ProjectionHack = 1
|
||||||
PH_SZNear = 0
|
PH_SZNear = 0
|
||||||
PH_SZFar = 0
|
PH_SZFar = 0
|
||||||
PH_ExtraParam = 0
|
PH_ExtraParam = 0
|
||||||
PH_ZNear =
|
PH_ZNear = 0.5
|
||||||
PH_ZFar = 0.7
|
PH_ZFar = 0.5
|
||||||
[Gecko]
|
[Gecko]
|
||||||
[Video_Hacks]
|
[Video_Hacks]
|
||||||
EFBToTextureEnable = False
|
EFBToTextureEnable = False
|
||||||
|
|
|
@ -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 = Needs LLE audio for sound ingame. Enabling texture filtering solves some texture issues with direct3d9 backend.
|
EmulationIssues = Needs LLE audio for sound ingame.
|
||||||
[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,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 = Needs LLE audio for sound ingame. Enabling texture filtering solves some texture issues with direct3d9 backend.
|
EmulationIssues = Needs LLE audio for sound ingame.
|
||||||
[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]
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
# SSQE01 - Mario Party 9
|
||||||
|
[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 = Flinger Painting minigame needs EFB to RAM to function properly.
|
||||||
|
[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
|
||||||
|
EFBCopyCacheEnable = True
|
|
@ -0,0 +1,19 @@
|
||||||
|
# SSQJ01 - Mario Party 9
|
||||||
|
[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 = Flinger Painting minigame needs EFB to RAM to function properly.
|
||||||
|
[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
|
||||||
|
EFBCopyCacheEnable = True
|
|
@ -0,0 +1,19 @@
|
||||||
|
# SSQP01 - Mario Party 9
|
||||||
|
[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 = Flinger Painting minigame needs EFB to RAM to function properly.
|
||||||
|
[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
|
||||||
|
EFBCopyCacheEnable = True
|
|
@ -0,0 +1,17 @@
|
||||||
|
# SX3J01 - Pandora s Tower
|
||||||
|
[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 =
|
||||||
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
|
[ActionReplay] Add action replay cheats here.
|
||||||
|
[Video]
|
||||||
|
ProjectionHack = 0
|
||||||
|
PH_SZNear = 0
|
||||||
|
PH_SZFar = 0
|
||||||
|
PH_ExtraParam = 0
|
||||||
|
PH_ZNear =
|
||||||
|
PH_ZFar =
|
||||||
|
[Gecko]
|
||||||
|
[Video_Settings]
|
||||||
|
SafeTextureCacheColorSamples = 0
|
|
@ -0,0 +1,17 @@
|
||||||
|
# SX3P01 - Pandora s Tower
|
||||||
|
[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 =
|
||||||
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
|
[ActionReplay] Add action replay cheats here.
|
||||||
|
[Video]
|
||||||
|
ProjectionHack = 0
|
||||||
|
PH_SZNear = 0
|
||||||
|
PH_SZFar = 0
|
||||||
|
PH_ExtraParam = 0
|
||||||
|
PH_ZNear =
|
||||||
|
PH_ZFar =
|
||||||
|
[Gecko]
|
||||||
|
[Video_Settings]
|
||||||
|
SafeTextureCacheColorSamples = 0
|
1563
Languages/po/ar.po
1563
Languages/po/ar.po
File diff suppressed because it is too large
Load Diff
1565
Languages/po/ca.po
1565
Languages/po/ca.po
File diff suppressed because it is too large
Load Diff
1565
Languages/po/cs.po
1565
Languages/po/cs.po
File diff suppressed because it is too large
Load Diff
1569
Languages/po/de.po
1569
Languages/po/de.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1631
Languages/po/el.po
1631
Languages/po/el.po
File diff suppressed because it is too large
Load Diff
1590
Languages/po/en.po
1590
Languages/po/en.po
File diff suppressed because it is too large
Load Diff
1863
Languages/po/es.po
1863
Languages/po/es.po
File diff suppressed because it is too large
Load Diff
1764
Languages/po/fa.po
1764
Languages/po/fa.po
File diff suppressed because it is too large
Load Diff
1644
Languages/po/fr.po
1644
Languages/po/fr.po
File diff suppressed because it is too large
Load Diff
1590
Languages/po/he.po
1590
Languages/po/he.po
File diff suppressed because it is too large
Load Diff
1563
Languages/po/hu.po
1563
Languages/po/hu.po
File diff suppressed because it is too large
Load Diff
1572
Languages/po/it.po
1572
Languages/po/it.po
File diff suppressed because it is too large
Load Diff
1662
Languages/po/ja.po
1662
Languages/po/ja.po
File diff suppressed because it is too large
Load Diff
1563
Languages/po/ko.po
1563
Languages/po/ko.po
File diff suppressed because it is too large
Load Diff
1565
Languages/po/nb.po
1565
Languages/po/nb.po
File diff suppressed because it is too large
Load Diff
1563
Languages/po/nl.po
1563
Languages/po/nl.po
File diff suppressed because it is too large
Load Diff
1656
Languages/po/pl.po
1656
Languages/po/pl.po
File diff suppressed because it is too large
Load Diff
1564
Languages/po/pt.po
1564
Languages/po/pt.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1554
Languages/po/ru.po
1554
Languages/po/ru.po
File diff suppressed because it is too large
Load Diff
1598
Languages/po/sr.po
1598
Languages/po/sr.po
File diff suppressed because it is too large
Load Diff
1600
Languages/po/tr.po
1600
Languages/po/tr.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
||||||
Dolphin-emu - The Gamecube / Wii Emulator
|
Dolphin-emu - The Gamecube / Wii Emulator
|
||||||
==========================================
|
==========================================
|
||||||
Homesite: http://dolphin-emulator.com/
|
Homesite: http://dolphin-emu.org/
|
||||||
Project Site: http://code.google.com/p/dolphin-emu
|
Project Site: http://code.google.com/p/dolphin-emu
|
||||||
|
|
||||||
Dolphin-emu is a emulator for Gamecube, Wii, Triforce that lets
|
Dolphin-emu is a emulator for Gamecube, Wii, Triforce that lets
|
||||||
|
@ -17,7 +17,7 @@ Please read the FAQ before use:
|
||||||
http://code.google.com/p/dolphin-emu/wiki/Facts_And_Questions
|
http://code.google.com/p/dolphin-emu/wiki/Facts_And_Questions
|
||||||
|
|
||||||
System Requirements:
|
System Requirements:
|
||||||
* OS: Microsoft Windows (2000/XP/Vista or higher) or Linux or Apple Mac OS X.
|
* OS: Microsoft Windows (XP/Vista or higher) or Linux or Apple Mac OS X.
|
||||||
* Processor: Fast CPU with SSE2 supported (recommended at least 2Ghz).
|
* Processor: Fast CPU with SSE2 supported (recommended at least 2Ghz).
|
||||||
Dual Core for speed boost.
|
Dual Core for speed boost.
|
||||||
* Graphics: Any graphics card that supports Direct3D 9 or OpenGL 2.1.
|
* Graphics: Any graphics card that supports Direct3D 9 or OpenGL 2.1.
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#include "CoreAudioSoundStream.h"
|
#include "CoreAudioSoundStream.h"
|
||||||
#include "OpenALStream.h"
|
#include "OpenALStream.h"
|
||||||
#include "PulseAudioStream.h"
|
#include "PulseAudioStream.h"
|
||||||
|
#include "../../Core/Src/Movie.h"
|
||||||
|
|
||||||
namespace AudioCommon
|
namespace AudioCommon
|
||||||
{
|
{
|
||||||
|
@ -115,7 +116,31 @@ namespace AudioCommon
|
||||||
return backends;
|
return backends;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UseJIT() {
|
bool UseJIT()
|
||||||
|
{
|
||||||
|
if (!Movie::IsDSPHLE() && Movie::IsPlayingInput() && Movie::IsConfigSaved())
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return ac_Config.m_EnableJIT;
|
return ac_Config.m_EnableJIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PauseAndLock(bool doLock, bool unpauseOnUnlock)
|
||||||
|
{
|
||||||
|
if (soundStream)
|
||||||
|
{
|
||||||
|
// audio typically doesn't maintain its own "paused" state
|
||||||
|
// (that's already handled by the CPU and whatever else being paused)
|
||||||
|
// so it should be good enough to only lock/unlock here.
|
||||||
|
CMixer* pMixer = soundStream->GetMixer();
|
||||||
|
if (pMixer)
|
||||||
|
{
|
||||||
|
std::mutex& csMixing = pMixer->MixerCritical();
|
||||||
|
if (doLock)
|
||||||
|
csMixing.lock();
|
||||||
|
else
|
||||||
|
csMixing.unlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,6 +59,7 @@ namespace AudioCommon
|
||||||
void ShutdownSoundStream();
|
void ShutdownSoundStream();
|
||||||
std::vector<std::string> GetSoundBackends();
|
std::vector<std::string> GetSoundBackends();
|
||||||
bool UseJIT();
|
bool UseJIT();
|
||||||
|
void PauseAndLock(bool doLock, bool unpauseOnUnlock=true);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // _AUDIO_COMMON_H_
|
#endif // _AUDIO_COMMON_H_
|
||||||
|
|
|
@ -31,7 +31,6 @@ void AudioCommonConfig::Load()
|
||||||
IniFile file;
|
IniFile file;
|
||||||
file.Load(File::GetUserPath(F_DSPCONFIG_IDX));
|
file.Load(File::GetUserPath(F_DSPCONFIG_IDX));
|
||||||
|
|
||||||
file.Get("Config", "EnableDTKMusic", &m_EnableDTKMusic, true);
|
|
||||||
file.Get("Config", "EnableJIT", &m_EnableJIT, true);
|
file.Get("Config", "EnableJIT", &m_EnableJIT, true);
|
||||||
file.Get("Config", "DumpAudio", &m_DumpAudio, false);
|
file.Get("Config", "DumpAudio", &m_DumpAudio, false);
|
||||||
#if defined __linux__ && HAVE_ALSA
|
#if defined __linux__ && HAVE_ALSA
|
||||||
|
@ -53,7 +52,6 @@ void AudioCommonConfig::SaveSettings()
|
||||||
IniFile file;
|
IniFile file;
|
||||||
file.Load(File::GetUserPath(F_DSPCONFIG_IDX));
|
file.Load(File::GetUserPath(F_DSPCONFIG_IDX));
|
||||||
|
|
||||||
file.Set("Config", "EnableDTKMusic", m_EnableDTKMusic);
|
|
||||||
file.Set("Config", "EnableJIT", m_EnableJIT);
|
file.Set("Config", "EnableJIT", m_EnableJIT);
|
||||||
file.Set("Config", "DumpAudio", m_DumpAudio);
|
file.Set("Config", "DumpAudio", m_DumpAudio);
|
||||||
file.Set("Config", "Backend", sBackend);
|
file.Set("Config", "Backend", sBackend);
|
||||||
|
@ -67,7 +65,6 @@ void AudioCommonConfig::SaveSettings()
|
||||||
void AudioCommonConfig::Update() {
|
void AudioCommonConfig::Update() {
|
||||||
if (soundStream) {
|
if (soundStream) {
|
||||||
soundStream->GetMixer()->SetThrottle(SConfig::GetInstance().m_Framelimit == 2);
|
soundStream->GetMixer()->SetThrottle(SConfig::GetInstance().m_Framelimit == 2);
|
||||||
soundStream->GetMixer()->SetDTKMusic(m_EnableDTKMusic);
|
|
||||||
soundStream->SetVolume(m_Volume);
|
soundStream->SetVolume(m_Volume);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,6 @@
|
||||||
|
|
||||||
struct AudioCommonConfig
|
struct AudioCommonConfig
|
||||||
{
|
{
|
||||||
bool m_EnableDTKMusic;
|
|
||||||
bool m_EnableJIT;
|
bool m_EnableJIT;
|
||||||
bool m_DumpAudio;
|
bool m_DumpAudio;
|
||||||
int m_Volume;
|
int m_Volume;
|
||||||
|
|
|
@ -37,7 +37,9 @@ unsigned int CMixer::Mix(short* samples, unsigned int numSamples)
|
||||||
if (!samples)
|
if (!samples)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (PowerPC::GetState() != 0)
|
std::lock_guard<std::mutex> lk(m_csMixing);
|
||||||
|
|
||||||
|
if (PowerPC::GetState() != PowerPC::CPU_RUNNING)
|
||||||
{
|
{
|
||||||
// Silence
|
// Silence
|
||||||
memset(samples, 0, numSamples * 4);
|
memset(samples, 0, numSamples * 4);
|
||||||
|
@ -136,8 +138,7 @@ unsigned int CMixer::Mix(short* samples, unsigned int numSamples)
|
||||||
if (m_AIplaying) {
|
if (m_AIplaying) {
|
||||||
Premix(samples, numLeft);
|
Premix(samples, numLeft);
|
||||||
|
|
||||||
if (m_EnableDTKMusic)
|
AudioInterface::Callback_GetStreaming(samples, numLeft, m_sampleRate);
|
||||||
AudioInterface::Callback_GetStreaming(samples, numLeft, m_sampleRate);
|
|
||||||
|
|
||||||
g_wave_writer.AddStereoSamples(samples, numLeft);
|
g_wave_writer.AddStereoSamples(samples, numLeft);
|
||||||
}
|
}
|
||||||
|
@ -147,11 +148,8 @@ unsigned int CMixer::Mix(short* samples, unsigned int numSamples)
|
||||||
Premix(samples, numSamples);
|
Premix(samples, numSamples);
|
||||||
|
|
||||||
// Add the DTK Music
|
// Add the DTK Music
|
||||||
if (m_EnableDTKMusic)
|
// Re-sampling is done inside
|
||||||
{
|
AudioInterface::Callback_GetStreaming(samples, numSamples, m_sampleRate);
|
||||||
// Re-sampling is done inside
|
|
||||||
AudioInterface::Callback_GetStreaming(samples, numSamples, m_sampleRate);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -168,7 +166,7 @@ void CMixer::PushSamples(const short *samples, unsigned int num_samples)
|
||||||
// The auto throttle function. This loop will put a ceiling on the CPU MHz.
|
// The auto throttle function. This loop will put a ceiling on the CPU MHz.
|
||||||
while (num_samples + Common::AtomicLoad(m_numSamples) > MAX_SAMPLES)
|
while (num_samples + Common::AtomicLoad(m_numSamples) > MAX_SAMPLES)
|
||||||
{
|
{
|
||||||
if (*PowerPC::GetStatePtr() != 0)
|
if (*PowerPC::GetStatePtr() != PowerPC::CPU_RUNNING || soundStream->IsMuted())
|
||||||
break;
|
break;
|
||||||
// Shortcut key for Throttle Skipping
|
// Shortcut key for Throttle Skipping
|
||||||
if (Host_GetKeyState('\t'))
|
if (Host_GetKeyState('\t'))
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#define _MIXER_H_
|
#define _MIXER_H_
|
||||||
|
|
||||||
#include "WaveFile.h"
|
#include "WaveFile.h"
|
||||||
|
#include "StdMutex.h"
|
||||||
|
|
||||||
// 16 bit Stereo
|
// 16 bit Stereo
|
||||||
#define MAX_SAMPLES (1024 * 8)
|
#define MAX_SAMPLES (1024 * 8)
|
||||||
|
@ -61,7 +62,6 @@ public:
|
||||||
unsigned int GetSampleRate() {return m_sampleRate;}
|
unsigned int GetSampleRate() {return m_sampleRate;}
|
||||||
|
|
||||||
void SetThrottle(bool use) { m_throttle = use;}
|
void SetThrottle(bool use) { m_throttle = use;}
|
||||||
void SetDTKMusic(bool use) { m_EnableDTKMusic = use;}
|
|
||||||
|
|
||||||
// TODO: do we need this
|
// TODO: do we need this
|
||||||
bool IsHLEReady() { return m_HLEready;}
|
bool IsHLEReady() { return m_HLEready;}
|
||||||
|
@ -90,6 +90,7 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::mutex& MixerCritical() { return m_csMixing; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
unsigned int m_sampleRate;
|
unsigned int m_sampleRate;
|
||||||
|
@ -103,7 +104,6 @@ protected:
|
||||||
bool m_HLEready;
|
bool m_HLEready;
|
||||||
bool m_logAudio;
|
bool m_logAudio;
|
||||||
|
|
||||||
bool m_EnableDTKMusic;
|
|
||||||
bool m_throttle;
|
bool m_throttle;
|
||||||
|
|
||||||
short m_buffer[MAX_SAMPLES * 2];
|
short m_buffer[MAX_SAMPLES * 2];
|
||||||
|
@ -112,7 +112,7 @@ protected:
|
||||||
u32 m_indexR;
|
u32 m_indexR;
|
||||||
|
|
||||||
bool m_AIplaying;
|
bool m_AIplaying;
|
||||||
|
std::mutex m_csMixing;
|
||||||
private:
|
private:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -17,6 +17,8 @@
|
||||||
|
|
||||||
#include "AudioCommon.h"
|
#include "AudioCommon.h"
|
||||||
#include "NullSoundStream.h"
|
#include "NullSoundStream.h"
|
||||||
|
#include "../../Core/Src/HW/SystemTimers.h"
|
||||||
|
#include "../../Core/Src/HW/AudioInterface.h"
|
||||||
|
|
||||||
void NullSound::SoundLoop()
|
void NullSound::SoundLoop()
|
||||||
{
|
{
|
||||||
|
@ -33,9 +35,14 @@ void NullSound::SetVolume(int volume)
|
||||||
|
|
||||||
void NullSound::Update()
|
void NullSound::Update()
|
||||||
{
|
{
|
||||||
// This should equal AUDIO_DMA_PERIOD. TODO: Fix after DSP merge
|
// num_samples_to_render in this update - depends on SystemTimers::AUDIO_DMA_PERIOD.
|
||||||
int numBytesToRender = 32000 * 4 / 32;
|
const u32 stereo_16_bit_size = 4;
|
||||||
m_mixer->Mix(realtimeBuffer, numBytesToRender / 4);
|
const u32 dma_length = 32;
|
||||||
|
const u64 audio_dma_period = SystemTimers::GetTicksPerSecond() / (AudioInterface::GetAIDSampleRate() * stereo_16_bit_size / dma_length);
|
||||||
|
const u64 ais_samples_per_second = 48000 * stereo_16_bit_size;
|
||||||
|
const u64 num_samples_to_render = (audio_dma_period * ais_samples_per_second) / SystemTimers::GetTicksPerSecond();
|
||||||
|
|
||||||
|
m_mixer->Mix(realtimeBuffer, (unsigned int)num_samples_to_render);
|
||||||
}
|
}
|
||||||
|
|
||||||
void NullSound::Clear(bool mute)
|
void NullSound::Clear(bool mute)
|
||||||
|
|
|
@ -46,6 +46,7 @@ public:
|
||||||
virtual void Stop() {}
|
virtual void Stop() {}
|
||||||
virtual void Update() {}
|
virtual void Update() {}
|
||||||
virtual void Clear(bool mute) { m_muted = mute; }
|
virtual void Clear(bool mute) { m_muted = mute; }
|
||||||
|
bool IsMuted() { return m_muted; }
|
||||||
virtual void StartLogAudio(const char *filename) {
|
virtual void StartLogAudio(const char *filename) {
|
||||||
if (! m_logAudio) {
|
if (! m_logAudio) {
|
||||||
m_logAudio = true;
|
m_logAudio = true;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include "CDUtils.h"
|
#include "CDUtils.h"
|
||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
|
|
||||||
|
#include <memory> // for std::unique_ptr
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#elif __APPLE__
|
#elif __APPLE__
|
||||||
|
|
|
@ -77,12 +77,6 @@ public:
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
void Do(std::map<unsigned int, T> &x)
|
void Do(std::map<unsigned int, T> &x)
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
PanicAlert("Do(map<>) does not yet work.");
|
|
||||||
}
|
|
||||||
|
|
||||||
void Do(std::map<unsigned int, std::string> &x)
|
|
||||||
{
|
{
|
||||||
unsigned int number = (unsigned int)x.size();
|
unsigned int number = (unsigned int)x.size();
|
||||||
Do(number);
|
Do(number);
|
||||||
|
@ -94,7 +88,7 @@ public:
|
||||||
{
|
{
|
||||||
unsigned int first = 0;
|
unsigned int first = 0;
|
||||||
Do(first);
|
Do(first);
|
||||||
std::string second;
|
T second;
|
||||||
Do(second);
|
Do(second);
|
||||||
x[first] = second;
|
x[first] = second;
|
||||||
--number;
|
--number;
|
||||||
|
@ -105,7 +99,7 @@ public:
|
||||||
case MODE_MEASURE:
|
case MODE_MEASURE:
|
||||||
case MODE_VERIFY:
|
case MODE_VERIFY:
|
||||||
{
|
{
|
||||||
std::map<unsigned int, std::string>::iterator itr = x.begin();
|
typename std::map<unsigned int, T>::iterator itr = x.begin();
|
||||||
while (number > 0)
|
while (number > 0)
|
||||||
{
|
{
|
||||||
Do(itr->first);
|
Do(itr->first);
|
||||||
|
@ -178,11 +172,74 @@ public:
|
||||||
void Do(T &x) {
|
void Do(T &x) {
|
||||||
DoVoid((void *)&x, sizeof(x));
|
DoVoid((void *)&x, sizeof(x));
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
void DoLinkedList(LinkedListItem<T> **list_start) {
|
void DoPointer(T* &x, T*const base) {
|
||||||
// TODO
|
// pointers can be more than 2^31 apart, but you're using this function wrong if you need that much range
|
||||||
PanicAlert("Do(linked list<>) does not yet work.");
|
s32 offset = x - base;
|
||||||
|
Do(offset);
|
||||||
|
if (mode == MODE_READ)
|
||||||
|
x = base + offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class T, LinkedListItem<T>* (*TNew)(), void (*TFree)(LinkedListItem<T>*), void (*TDo)(PointerWrap&, T*)>
|
||||||
|
void DoLinkedList(LinkedListItem<T>*& list_start, LinkedListItem<T>** list_end=0)
|
||||||
|
{
|
||||||
|
LinkedListItem<T>* list_cur = list_start;
|
||||||
|
LinkedListItem<T>* prev = 0;
|
||||||
|
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
u8 shouldExist = (list_cur ? 1 : 0);
|
||||||
|
Do(shouldExist);
|
||||||
|
if (shouldExist == 1)
|
||||||
|
{
|
||||||
|
LinkedListItem<T>* cur = list_cur ? list_cur : TNew();
|
||||||
|
TDo(*this, (T*)cur);
|
||||||
|
if (!list_cur)
|
||||||
|
{
|
||||||
|
if (mode == MODE_READ)
|
||||||
|
{
|
||||||
|
cur->next = 0;
|
||||||
|
list_cur = cur;
|
||||||
|
if (prev)
|
||||||
|
prev->next = cur;
|
||||||
|
else
|
||||||
|
list_start = cur;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TFree(cur);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (mode == MODE_READ)
|
||||||
|
{
|
||||||
|
if (prev)
|
||||||
|
prev->next = 0;
|
||||||
|
if (list_end)
|
||||||
|
*list_end = prev;
|
||||||
|
if (list_cur)
|
||||||
|
{
|
||||||
|
if (list_start == list_cur)
|
||||||
|
list_start = 0;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
LinkedListItem<T>* next = list_cur->next;
|
||||||
|
TFree(list_cur);
|
||||||
|
list_cur = next;
|
||||||
|
}
|
||||||
|
while (list_cur);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
prev = list_cur;
|
||||||
|
list_cur = list_cur->next;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoMarker(const char* prevName, u32 arbitraryNumber=0x42)
|
void DoMarker(const char* prevName, u32 arbitraryNumber=0x42)
|
||||||
|
|
|
@ -31,7 +31,7 @@ const int lut3to8[] = { 0x00,0x24,0x48,0x6D,0x91,0xB6,0xDA,0xFF };
|
||||||
|
|
||||||
u32 Decode5A3(u16 val)
|
u32 Decode5A3(u16 val)
|
||||||
{
|
{
|
||||||
const u32 bg_color = 0x00000000;
|
const u32 bg_color = 0xFFFFFFFF;
|
||||||
|
|
||||||
int r, g, b, a;
|
int r, g, b, a;
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#define SLEEP(x) Sleep(x)
|
#define SLEEP(x) Sleep(x)
|
||||||
#else
|
#else
|
||||||
|
#include <unistd.h>
|
||||||
#define SLEEP(x) usleep(x*1000)
|
#define SLEEP(x) usleep(x*1000)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -106,6 +106,7 @@
|
||||||
// Files in the directory returned by GetUserPath(D_DUMP_IDX)
|
// Files in the directory returned by GetUserPath(D_DUMP_IDX)
|
||||||
#define RAM_DUMP "ram.raw"
|
#define RAM_DUMP "ram.raw"
|
||||||
#define ARAM_DUMP "aram.raw"
|
#define ARAM_DUMP "aram.raw"
|
||||||
|
#define FAKEVMEM_DUMP "fakevmem.raw"
|
||||||
|
|
||||||
// Sys files
|
// Sys files
|
||||||
#define TOTALDB "totaldb.dsy"
|
#define TOTALDB "totaldb.dsy"
|
||||||
|
@ -121,6 +122,8 @@
|
||||||
#define GC_MEMCARDA "MemoryCardA"
|
#define GC_MEMCARDA "MemoryCardA"
|
||||||
#define GC_MEMCARDB "MemoryCardB"
|
#define GC_MEMCARDB "MemoryCardB"
|
||||||
|
|
||||||
|
#define WII_STATE "state.dat"
|
||||||
|
|
||||||
#define WII_SETTING "setting.txt"
|
#define WII_SETTING "setting.txt"
|
||||||
#define WII_EUR_SETTING "setting-eur.txt"
|
#define WII_EUR_SETTING "setting-eur.txt"
|
||||||
#define WII_USA_SETTING "setting-usa.txt"
|
#define WII_USA_SETTING "setting-usa.txt"
|
||||||
|
|
|
@ -35,6 +35,9 @@ ConsoleListener::ConsoleListener()
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
hConsole = NULL;
|
hConsole = NULL;
|
||||||
|
bUseColor = true;
|
||||||
|
#else
|
||||||
|
bUseColor = isatty(fileno(stdout));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -299,7 +302,28 @@ void ConsoleListener::Log(LogTypes::LOG_LEVELS Level, const char *Text)
|
||||||
SetConsoleTextAttribute(hConsole, Color);
|
SetConsoleTextAttribute(hConsole, Color);
|
||||||
WriteConsole(hConsole, Text, (DWORD)strlen(Text), &cCharsWritten, NULL);
|
WriteConsole(hConsole, Text, (DWORD)strlen(Text), &cCharsWritten, NULL);
|
||||||
#else
|
#else
|
||||||
fprintf(stderr, "%s", Text);
|
char ColorAttr[16] = "";
|
||||||
|
char ResetAttr[16] = "";
|
||||||
|
|
||||||
|
if (bUseColor)
|
||||||
|
{
|
||||||
|
strcpy(ResetAttr, "\033[0m");
|
||||||
|
switch (Level)
|
||||||
|
{
|
||||||
|
case NOTICE_LEVEL: // light green
|
||||||
|
strcpy(ColorAttr, "\033[92m");
|
||||||
|
break;
|
||||||
|
case ERROR_LEVEL: // light red
|
||||||
|
strcpy(ColorAttr, "\033[91m");
|
||||||
|
break;
|
||||||
|
case WARNING_LEVEL: // light yellow
|
||||||
|
strcpy(ColorAttr, "\033[93m");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fprintf(stderr, "%s%s%s", ColorAttr, Text, ResetAttr);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
// Clear console screen
|
// Clear console screen
|
||||||
|
|
|
@ -48,6 +48,7 @@ private:
|
||||||
HWND GetHwnd(void);
|
HWND GetHwnd(void);
|
||||||
HANDLE hConsole;
|
HANDLE hConsole;
|
||||||
#endif
|
#endif
|
||||||
|
bool bUseColor;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _CONSOLELISTENER_H
|
#endif // _CONSOLELISTENER_H
|
||||||
|
|
|
@ -682,6 +682,7 @@ std::string &GetUserPath(const unsigned int DirIDX, const std::string &newPath)
|
||||||
paths[F_WIISYSCONF_IDX] = paths[D_WIISYSCONF_IDX] + WII_SYSCONF;
|
paths[F_WIISYSCONF_IDX] = paths[D_WIISYSCONF_IDX] + WII_SYSCONF;
|
||||||
paths[F_RAMDUMP_IDX] = paths[D_DUMP_IDX] + RAM_DUMP;
|
paths[F_RAMDUMP_IDX] = paths[D_DUMP_IDX] + RAM_DUMP;
|
||||||
paths[F_ARAMDUMP_IDX] = paths[D_DUMP_IDX] + ARAM_DUMP;
|
paths[F_ARAMDUMP_IDX] = paths[D_DUMP_IDX] + ARAM_DUMP;
|
||||||
|
paths[F_FAKEVMEMDUMP_IDX] = paths[D_DUMP_IDX] + FAKEVMEM_DUMP;
|
||||||
paths[F_GCSRAM_IDX] = paths[D_GCUSER_IDX] + GC_SRAM;
|
paths[F_GCSRAM_IDX] = paths[D_GCUSER_IDX] + GC_SRAM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,7 @@ enum {
|
||||||
F_WIISYSCONF_IDX,
|
F_WIISYSCONF_IDX,
|
||||||
F_RAMDUMP_IDX,
|
F_RAMDUMP_IDX,
|
||||||
F_ARAMDUMP_IDX,
|
F_ARAMDUMP_IDX,
|
||||||
|
F_FAKEVMEMDUMP_IDX,
|
||||||
F_GCSRAM_IDX,
|
F_GCSRAM_IDX,
|
||||||
NUM_PATH_INDICES
|
NUM_PATH_INDICES
|
||||||
};
|
};
|
||||||
|
|
|
@ -115,11 +115,11 @@ void GenericLog(LOGTYPES_LEVELS level, LOGTYPES_TYPE type,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ERROR_LOG(t,...) { GENERIC_LOG(LogTypes::t, LogTypes::LERROR, __VA_ARGS__) }
|
#define ERROR_LOG(t,...) do { GENERIC_LOG(LogTypes::t, LogTypes::LERROR, __VA_ARGS__) } while (0)
|
||||||
#define WARN_LOG(t,...) { GENERIC_LOG(LogTypes::t, LogTypes::LWARNING, __VA_ARGS__) }
|
#define WARN_LOG(t,...) do { GENERIC_LOG(LogTypes::t, LogTypes::LWARNING, __VA_ARGS__) } while (0)
|
||||||
#define NOTICE_LOG(t,...) { GENERIC_LOG(LogTypes::t, LogTypes::LNOTICE, __VA_ARGS__) }
|
#define NOTICE_LOG(t,...) do { GENERIC_LOG(LogTypes::t, LogTypes::LNOTICE, __VA_ARGS__) } while (0)
|
||||||
#define INFO_LOG(t,...) { GENERIC_LOG(LogTypes::t, LogTypes::LINFO, __VA_ARGS__) }
|
#define INFO_LOG(t,...) do { GENERIC_LOG(LogTypes::t, LogTypes::LINFO, __VA_ARGS__) } while (0)
|
||||||
#define DEBUG_LOG(t,...) { GENERIC_LOG(LogTypes::t, LogTypes::LDEBUG, __VA_ARGS__) }
|
#define DEBUG_LOG(t,...) do { GENERIC_LOG(LogTypes::t, LogTypes::LDEBUG, __VA_ARGS__) } while (0)
|
||||||
|
|
||||||
#if MAX_LOGLEVEL >= DEBUG_LEVEL
|
#if MAX_LOGLEVEL >= DEBUG_LEVEL
|
||||||
#define _dbg_assert_(_t_, _a_) \
|
#define _dbg_assert_(_t_, _a_) \
|
||||||
|
|
|
@ -161,6 +161,7 @@ void LoadDefaultSSEState();
|
||||||
float MathFloatVectorSum(const std::vector<float>&);
|
float MathFloatVectorSum(const std::vector<float>&);
|
||||||
|
|
||||||
#define ROUND_UP(x, a) (((x) + (a) - 1) & ~((a) - 1))
|
#define ROUND_UP(x, a) (((x) + (a) - 1) & ~((a) - 1))
|
||||||
|
#define ROUND_DOWN(x, a) ((x) & ~((a) - 1))
|
||||||
|
|
||||||
|
|
||||||
// Tiny matrix/vector library.
|
// Tiny matrix/vector library.
|
||||||
|
|
|
@ -29,8 +29,10 @@
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef _WIN32
|
#if defined(__APPLE__)
|
||||||
static const char* ram_temp_file = "/tmp/gc_mem.tmp";
|
static const char* ram_temp_file = "/tmp/gc_mem.tmp";
|
||||||
|
#elif !defined(_WIN32) // non OSX unixes
|
||||||
|
static const char* ram_temp_file = "/dev/shm/gc_mem.tmp";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void MemArena::GrabLowMemSpace(size_t size)
|
void MemArena::GrabLowMemSpace(size_t size)
|
||||||
|
@ -40,6 +42,7 @@ void MemArena::GrabLowMemSpace(size_t size)
|
||||||
#else
|
#else
|
||||||
mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
|
mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
|
||||||
fd = open(ram_temp_file, O_RDWR | O_CREAT, mode);
|
fd = open(ram_temp_file, O_RDWR | O_CREAT, mode);
|
||||||
|
unlink(ram_temp_file);
|
||||||
ftruncate(fd, size);
|
ftruncate(fd, size);
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
|
@ -53,27 +56,30 @@ void MemArena::ReleaseSpace()
|
||||||
hMemoryMapping = 0;
|
hMemoryMapping = 0;
|
||||||
#else
|
#else
|
||||||
close(fd);
|
close(fd);
|
||||||
unlink(ram_temp_file);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void* MemArena::CreateView(s64 offset, size_t size)
|
void *MemArena::CreateView(s64 offset, size_t size, void *base)
|
||||||
{
|
|
||||||
#ifdef _WIN32
|
|
||||||
return MapViewOfFile(hMemoryMapping, FILE_MAP_ALL_ACCESS, 0, (DWORD)((u64)offset), size);
|
|
||||||
#else
|
|
||||||
return mmap(0, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, offset);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void* MemArena::CreateViewAt(s64 offset, size_t size, void* base)
|
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
return MapViewOfFileEx(hMemoryMapping, FILE_MAP_ALL_ACCESS, 0, (DWORD)((u64)offset), size, base);
|
return MapViewOfFileEx(hMemoryMapping, FILE_MAP_ALL_ACCESS, 0, (DWORD)((u64)offset), size, base);
|
||||||
#else
|
#else
|
||||||
return mmap(base, size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_FIXED, fd, offset);
|
void *retval = mmap(
|
||||||
|
base, size,
|
||||||
|
PROT_READ | PROT_WRITE,
|
||||||
|
MAP_SHARED | ((base == nullptr) ? 0 : MAP_FIXED),
|
||||||
|
fd, offset);
|
||||||
|
|
||||||
|
if (retval == MAP_FAILED)
|
||||||
|
{
|
||||||
|
NOTICE_LOG(MEMMAP, "mmap on %s failed", ram_temp_file);
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,8 +118,7 @@ u8* MemArena::Find4GBBase()
|
||||||
}
|
}
|
||||||
return base;
|
return base;
|
||||||
#else
|
#else
|
||||||
void* base = mmap(0, 0x31000000, PROT_READ | PROT_WRITE,
|
void* base = mmap(0, 0x31000000, PROT_NONE, MAP_ANON | MAP_PRIVATE, -1, 0);
|
||||||
MAP_ANON | MAP_SHARED, -1, 0);
|
|
||||||
if (base == MAP_FAILED) {
|
if (base == MAP_FAILED) {
|
||||||
PanicAlert("Failed to map 1 GB of memory space: %s", strerror(errno));
|
PanicAlert("Failed to map 1 GB of memory space: %s", strerror(errno));
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -160,14 +165,14 @@ static bool Memory_TryBase(u8 *base, const MemoryView *views, int num_views, u32
|
||||||
goto bail;
|
goto bail;
|
||||||
}
|
}
|
||||||
#ifdef _M_X64
|
#ifdef _M_X64
|
||||||
*views[i].out_ptr = (u8*)arena->CreateViewAt(
|
*views[i].out_ptr = (u8*)arena->CreateView(
|
||||||
position, views[i].size, base + views[i].virtual_address);
|
position, views[i].size, base + views[i].virtual_address);
|
||||||
#else
|
#else
|
||||||
if (views[i].flags & MV_MIRROR_PREVIOUS) {
|
if (views[i].flags & MV_MIRROR_PREVIOUS) {
|
||||||
// No need to create multiple identical views.
|
// No need to create multiple identical views.
|
||||||
*views[i].out_ptr = *views[i - 1].out_ptr;
|
*views[i].out_ptr = *views[i - 1].out_ptr;
|
||||||
} else {
|
} else {
|
||||||
*views[i].out_ptr = (u8*)arena->CreateViewAt(
|
*views[i].out_ptr = (u8*)arena->CreateView(
|
||||||
position, views[i].size, base + (views[i].virtual_address & 0x3FFFFFFF));
|
position, views[i].size, base + (views[i].virtual_address & 0x3FFFFFFF));
|
||||||
if (!*views[i].out_ptr)
|
if (!*views[i].out_ptr)
|
||||||
goto bail;
|
goto bail;
|
||||||
|
|
|
@ -33,12 +33,11 @@ class MemArena
|
||||||
public:
|
public:
|
||||||
void GrabLowMemSpace(size_t size);
|
void GrabLowMemSpace(size_t size);
|
||||||
void ReleaseSpace();
|
void ReleaseSpace();
|
||||||
void* CreateView(s64 offset, size_t size);
|
void *CreateView(s64 offset, size_t size, void *base = nullptr);
|
||||||
void* CreateViewAt(s64 offset, size_t size, void* base);
|
void ReleaseView(void *view, size_t size);
|
||||||
void ReleaseView(void* view, size_t size);
|
|
||||||
|
|
||||||
// This only finds 1 GB in 32-bit
|
// This only finds 1 GB in 32-bit
|
||||||
static u8* Find4GBBase();
|
static u8 *Find4GBBase();
|
||||||
private:
|
private:
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
|
|
@ -281,7 +281,7 @@ namespace this_thread
|
||||||
inline void yield()
|
inline void yield()
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
Sleep(0);
|
SwitchToThread();
|
||||||
#else
|
#else
|
||||||
sleep(0);
|
sleep(0);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -69,6 +69,9 @@ void VideoBackend::ClearList()
|
||||||
|
|
||||||
void VideoBackend::ActivateBackend(const std::string& name)
|
void VideoBackend::ActivateBackend(const std::string& name)
|
||||||
{
|
{
|
||||||
|
if (name.length() == 0) // If NULL, set it to the first one in the list. Expected behavior
|
||||||
|
g_video_backend = g_available_video_backends.front();
|
||||||
|
|
||||||
for (std::vector<VideoBackend*>::const_iterator it = g_available_video_backends.begin(); it != g_available_video_backends.end(); ++it)
|
for (std::vector<VideoBackend*>::const_iterator it = g_available_video_backends.begin(); it != g_available_video_backends.end(); ++it)
|
||||||
if (name == (*it)->GetName())
|
if (name == (*it)->GetName())
|
||||||
g_video_backend = *it;
|
g_video_backend = *it;
|
||||||
|
|
|
@ -93,8 +93,6 @@ public:
|
||||||
|
|
||||||
virtual bool Initialize(void *&) = 0;
|
virtual bool Initialize(void *&) = 0;
|
||||||
virtual void Shutdown() = 0;
|
virtual void Shutdown() = 0;
|
||||||
|
|
||||||
virtual void DoState(PointerWrap &p) = 0;
|
|
||||||
virtual void RunLoop(bool enable) = 0;
|
virtual void RunLoop(bool enable) = 0;
|
||||||
|
|
||||||
virtual std::string GetName() = 0;
|
virtual std::string GetName() = 0;
|
||||||
|
@ -131,6 +129,14 @@ public:
|
||||||
static void PopulateList();
|
static void PopulateList();
|
||||||
static void ClearList();
|
static void ClearList();
|
||||||
static void ActivateBackend(const std::string& name);
|
static void ActivateBackend(const std::string& name);
|
||||||
|
|
||||||
|
// waits until is paused and fully idle, and acquires a lock on that state.
|
||||||
|
// or, if doLock is false, releases a lock on that state and optionally unpauses.
|
||||||
|
// calls must be balanced and non-recursive (once with doLock true, then once with doLock false).
|
||||||
|
virtual void PauseAndLock(bool doLock, bool unpauseOnUnlock=true) = 0;
|
||||||
|
|
||||||
|
// the implementation needs not do synchronization logic, because calls to it are surrounded by PauseAndLock now
|
||||||
|
virtual void DoState(PointerWrap &p) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern std::vector<VideoBackend*> g_available_video_backends;
|
extern std::vector<VideoBackend*> g_available_video_backends;
|
||||||
|
@ -139,7 +145,6 @@ extern VideoBackend* g_video_backend;
|
||||||
// inherited by dx9/dx11/ogl backends
|
// inherited by dx9/dx11/ogl backends
|
||||||
class VideoBackendHardware : public VideoBackend
|
class VideoBackendHardware : public VideoBackend
|
||||||
{
|
{
|
||||||
void DoState(PointerWrap &p);
|
|
||||||
void RunLoop(bool enable);
|
void RunLoop(bool enable);
|
||||||
bool Initialize(void *&) { InitializeShared(); return true; }
|
bool Initialize(void *&) { InitializeShared(); return true; }
|
||||||
|
|
||||||
|
@ -169,6 +174,9 @@ class VideoBackendHardware : public VideoBackend
|
||||||
writeFn16 Video_PEWrite16();
|
writeFn16 Video_PEWrite16();
|
||||||
writeFn32 Video_PEWrite32();
|
writeFn32 Video_PEWrite32();
|
||||||
|
|
||||||
|
void PauseAndLock(bool doLock, bool unpauseOnUnlock=true);
|
||||||
|
void DoState(PointerWrap &p);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void InitializeShared();
|
void InitializeShared();
|
||||||
};
|
};
|
||||||
|
|
|
@ -1321,7 +1321,7 @@ void XEmitter::MOVDDUP(X64Reg regOp, OpArg arg)
|
||||||
{
|
{
|
||||||
// Simulate this instruction with SSE2 instructions
|
// Simulate this instruction with SSE2 instructions
|
||||||
if (!arg.IsSimpleReg(regOp))
|
if (!arg.IsSimpleReg(regOp))
|
||||||
MOVQ_xmm(regOp, arg); // MOVSD better?
|
MOVSD(regOp, arg);
|
||||||
UNPCKLPD(regOp, R(regOp));
|
UNPCKLPD(regOp, R(regOp));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include "Common.h" // Common
|
#include "Common.h" // Common
|
||||||
#include "StringUtil.h"
|
#include "StringUtil.h"
|
||||||
#include "FileUtil.h"
|
#include "FileUtil.h"
|
||||||
|
#include "MathUtil.h"
|
||||||
|
|
||||||
#include "../HLE/HLE.h" // Core
|
#include "../HLE/HLE.h" // Core
|
||||||
#include "../PowerPC/PowerPC.h"
|
#include "../PowerPC/PowerPC.h"
|
||||||
|
@ -68,13 +69,13 @@ void CBoot::Load_FST(bool _bIsWii)
|
||||||
u32 fstSize = VolumeHandler::Read32(0x0428) << shift;
|
u32 fstSize = VolumeHandler::Read32(0x0428) << shift;
|
||||||
u32 maxFstSize = VolumeHandler::Read32(0x042c) << shift;
|
u32 maxFstSize = VolumeHandler::Read32(0x042c) << shift;
|
||||||
|
|
||||||
u32 arenaHigh = 0x817FFFF4 - maxFstSize;
|
u32 arenaHigh = ROUND_DOWN(0x817FFFFF - maxFstSize, 0x20);
|
||||||
Memory::Write_U32(arenaHigh, 0x00000034);
|
Memory::Write_U32(arenaHigh, 0x00000034);
|
||||||
|
|
||||||
// load FST
|
// load FST
|
||||||
VolumeHandler::ReadToPtr(Memory::GetPointer(arenaHigh), fstOffset, fstSize);
|
VolumeHandler::ReadToPtr(Memory::GetPointer(arenaHigh), fstOffset, fstSize);
|
||||||
Memory::Write_U32(arenaHigh, 0x00000038);
|
Memory::Write_U32(arenaHigh, 0x00000038);
|
||||||
Memory::Write_U32(maxFstSize, 0x0000003c);
|
Memory::Write_U32(maxFstSize, 0x0000003c);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CBoot::UpdateDebugger_MapLoaded(const char *_gameID)
|
void CBoot::UpdateDebugger_MapLoaded(const char *_gameID)
|
||||||
|
|
|
@ -34,12 +34,35 @@ bool CBoot::IsElfWii(const char *filename)
|
||||||
File::IOFile f(filename, "rb");
|
File::IOFile f(filename, "rb");
|
||||||
f.ReadBytes(mem, (size_t)filesize);
|
f.ReadBytes(mem, (size_t)filesize);
|
||||||
}
|
}
|
||||||
|
|
||||||
ElfReader reader(mem);
|
|
||||||
// TODO: Find a more reliable way to distinguish.
|
|
||||||
bool isWii = reader.GetEntryPoint() >= 0x80004000;
|
|
||||||
delete[] mem;
|
|
||||||
|
|
||||||
|
// Use the same method as the DOL loader uses: search for mfspr from HID4,
|
||||||
|
// which should only be used in Wii ELFs.
|
||||||
|
//
|
||||||
|
// Likely to have some false positives/negatives, patches implementing a
|
||||||
|
// better heuristic are welcome.
|
||||||
|
|
||||||
|
u32 HID4_pattern = 0x7c13fba6;
|
||||||
|
u32 HID4_mask = 0xfc1fffff;
|
||||||
|
ElfReader reader(mem);
|
||||||
|
bool isWii = false;
|
||||||
|
|
||||||
|
for (int i = 0; i < reader.GetNumSections(); ++i)
|
||||||
|
{
|
||||||
|
if (reader.IsCodeSection(i))
|
||||||
|
{
|
||||||
|
for (unsigned int j = 0; j < reader.GetSectionSize(i) / sizeof (u32); ++j)
|
||||||
|
{
|
||||||
|
u32 word = Common::swap32(((u32*)reader.GetSectionDataPtr(i))[j]);
|
||||||
|
if ((word & HID4_mask) == HID4_pattern)
|
||||||
|
{
|
||||||
|
isWii = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
delete[] mem;
|
||||||
return isWii;
|
return isWii;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,8 +32,57 @@
|
||||||
#include "VolumeCreator.h"
|
#include "VolumeCreator.h"
|
||||||
#include "CommonPaths.h"
|
#include "CommonPaths.h"
|
||||||
|
|
||||||
|
static u32 state_checksum(u32 *buf, int len)
|
||||||
|
{
|
||||||
|
u32 checksum = 0;
|
||||||
|
len = len>>2;
|
||||||
|
|
||||||
|
for(int i=0; i<len; i++)
|
||||||
|
{
|
||||||
|
checksum += buf[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return checksum;
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
u32 checksum;
|
||||||
|
u8 flags;
|
||||||
|
u8 type;
|
||||||
|
u8 discstate;
|
||||||
|
u8 returnto;
|
||||||
|
u32 unknown[6];
|
||||||
|
} StateFlags;
|
||||||
|
|
||||||
bool CBoot::Boot_WiiWAD(const char* _pFilename)
|
bool CBoot::Boot_WiiWAD(const char* _pFilename)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
std::string state_filename(Common::GetTitleDataPath(TITLEID_SYSMENU) + WII_STATE);
|
||||||
|
|
||||||
|
if (File::Exists(state_filename))
|
||||||
|
{
|
||||||
|
File::IOFile state_file(state_filename, "r+b");
|
||||||
|
StateFlags state;
|
||||||
|
state_file.ReadBytes(&state, sizeof(StateFlags));
|
||||||
|
|
||||||
|
state.type = 0x03; // TYPE_RETURN
|
||||||
|
state.checksum = state_checksum((u32*)&state.flags, sizeof(StateFlags)-4);
|
||||||
|
|
||||||
|
state_file.Seek(0, SEEK_SET);
|
||||||
|
state_file.WriteBytes(&state, sizeof(StateFlags));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
File::CreateFullPath(state_filename);
|
||||||
|
File::IOFile state_file(state_filename, "a+b");
|
||||||
|
StateFlags state;
|
||||||
|
memset(&state,0,sizeof(StateFlags));
|
||||||
|
state.type = 0x03; // TYPE_RETURN
|
||||||
|
state.discstate = 0x01; // DISCSTATE_WII
|
||||||
|
state.checksum = state_checksum((u32*)&state.flags, sizeof(StateFlags)-4);
|
||||||
|
state_file.WriteBytes(&state, sizeof(StateFlags));
|
||||||
|
}
|
||||||
|
|
||||||
const DiscIO::INANDContentLoader& ContentLoader = DiscIO::CNANDContentManager::Access().GetNANDLoader(_pFilename);
|
const DiscIO::INANDContentLoader& ContentLoader = DiscIO::CNANDContentManager::Access().GetNANDLoader(_pFilename);
|
||||||
if (!ContentLoader.IsValid())
|
if (!ContentLoader.IsValid())
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -59,7 +59,6 @@ public:
|
||||||
bool LoadInto(u32 vaddr);
|
bool LoadInto(u32 vaddr);
|
||||||
bool LoadSymbols();
|
bool LoadSymbols();
|
||||||
|
|
||||||
private:
|
|
||||||
int GetNumSegments() const { return (int)(header->e_phnum); }
|
int GetNumSegments() const { return (int)(header->e_phnum); }
|
||||||
int GetNumSections() const { return (int)(header->e_shnum); }
|
int GetNumSections() const { return (int)(header->e_shnum); }
|
||||||
const u8 *GetPtr(int offset) const { return (u8*)base + offset; }
|
const u8 *GetPtr(int offset) const { return (u8*)base + offset; }
|
||||||
|
@ -73,6 +72,10 @@ private:
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
bool IsCodeSection(int section) const
|
||||||
|
{
|
||||||
|
return sections[section].sh_type == SHT_PROGBITS;
|
||||||
|
}
|
||||||
const u8 *GetSegmentPtr(int segment)
|
const u8 *GetSegmentPtr(int segment)
|
||||||
{
|
{
|
||||||
return GetPtr(segments[segment].p_offset);
|
return GetPtr(segments[segment].p_offset);
|
||||||
|
|
|
@ -44,6 +44,8 @@
|
||||||
#include "SysConf.h"
|
#include "SysConf.h"
|
||||||
#include "Core.h"
|
#include "Core.h"
|
||||||
#include "Host.h"
|
#include "Host.h"
|
||||||
|
#include "VideoBackendBase.h"
|
||||||
|
#include "Movie.h"
|
||||||
|
|
||||||
|
|
||||||
namespace BootManager
|
namespace BootManager
|
||||||
|
@ -56,6 +58,7 @@ struct ConfigCache
|
||||||
bool valid, bCPUThread, bSkipIdle, bEnableFPRF, bMMU, bMMUBAT,
|
bool valid, bCPUThread, bSkipIdle, bEnableFPRF, bMMU, bMMUBAT,
|
||||||
bVBeam, bFastDiscSpeed, bMergeBlocks, bDSPHLE, bDisableWiimoteSpeaker;
|
bVBeam, bFastDiscSpeed, bMergeBlocks, bDSPHLE, bDisableWiimoteSpeaker;
|
||||||
int iTLBHack;
|
int iTLBHack;
|
||||||
|
std::string strBackend;
|
||||||
};
|
};
|
||||||
static ConfigCache config_cache;
|
static ConfigCache config_cache;
|
||||||
|
|
||||||
|
@ -96,6 +99,7 @@ bool BootCore(const std::string& _rFilename)
|
||||||
config_cache.bMergeBlocks = StartUp.bMergeBlocks;
|
config_cache.bMergeBlocks = StartUp.bMergeBlocks;
|
||||||
config_cache.bDSPHLE = StartUp.bDSPHLE;
|
config_cache.bDSPHLE = StartUp.bDSPHLE;
|
||||||
config_cache.bDisableWiimoteSpeaker = StartUp.bDisableWiimoteSpeaker;
|
config_cache.bDisableWiimoteSpeaker = StartUp.bDisableWiimoteSpeaker;
|
||||||
|
config_cache.strBackend = StartUp.m_strVideoBackend;
|
||||||
|
|
||||||
// General settings
|
// General settings
|
||||||
game_ini.Get("Core", "CPUThread", &StartUp.bCPUThread, StartUp.bCPUThread);
|
game_ini.Get("Core", "CPUThread", &StartUp.bCPUThread, StartUp.bCPUThread);
|
||||||
|
@ -109,7 +113,23 @@ bool BootCore(const std::string& _rFilename)
|
||||||
game_ini.Get("Core", "BlockMerging", &StartUp.bMergeBlocks, StartUp.bMergeBlocks);
|
game_ini.Get("Core", "BlockMerging", &StartUp.bMergeBlocks, StartUp.bMergeBlocks);
|
||||||
game_ini.Get("Core", "DSPHLE", &StartUp.bDSPHLE, StartUp.bDSPHLE);
|
game_ini.Get("Core", "DSPHLE", &StartUp.bDSPHLE, StartUp.bDSPHLE);
|
||||||
game_ini.Get("Wii", "DisableWiimoteSpeaker",&StartUp.bDisableWiimoteSpeaker, StartUp.bDisableWiimoteSpeaker);
|
game_ini.Get("Wii", "DisableWiimoteSpeaker",&StartUp.bDisableWiimoteSpeaker, StartUp.bDisableWiimoteSpeaker);
|
||||||
|
game_ini.Get("Core", "GFXBackend", &StartUp.m_strVideoBackend, StartUp.m_strVideoBackend.c_str());
|
||||||
|
VideoBackend::ActivateBackend(StartUp.m_strVideoBackend);
|
||||||
|
|
||||||
|
if (Movie::IsPlayingInput() && Movie::IsConfigSaved())
|
||||||
|
{
|
||||||
|
Movie::Init();
|
||||||
|
StartUp.bCPUThread = Movie::IsDualCore();
|
||||||
|
StartUp.bSkipIdle = Movie::IsSkipIdle();
|
||||||
|
StartUp.bDSPHLE = Movie::IsDSPHLE();
|
||||||
|
StartUp.bProgressive = Movie::IsProgressive();
|
||||||
|
StartUp.bFastDiscSpeed = Movie::IsFastDiscSpeed();
|
||||||
|
if (Movie::IsUsingMemcard() && Movie::IsBlankMemcard())
|
||||||
|
{
|
||||||
|
if (File::Exists("Movie.raw"))
|
||||||
|
File::Delete("Movie.raw");
|
||||||
|
}
|
||||||
|
}
|
||||||
// Wii settings
|
// Wii settings
|
||||||
if (StartUp.bWii)
|
if (StartUp.bWii)
|
||||||
{
|
{
|
||||||
|
@ -149,6 +169,8 @@ void Stop()
|
||||||
StartUp.bMergeBlocks = config_cache.bMergeBlocks;
|
StartUp.bMergeBlocks = config_cache.bMergeBlocks;
|
||||||
StartUp.bDSPHLE = config_cache.bDSPHLE;
|
StartUp.bDSPHLE = config_cache.bDSPHLE;
|
||||||
StartUp.bDisableWiimoteSpeaker = config_cache.bDisableWiimoteSpeaker;
|
StartUp.bDisableWiimoteSpeaker = config_cache.bDisableWiimoteSpeaker;
|
||||||
|
StartUp.m_strVideoBackend = config_cache.strBackend;
|
||||||
|
VideoBackend::ActivateBackend(StartUp.m_strVideoBackend);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,12 +32,12 @@ static const struct {
|
||||||
const int DefaultModifier;
|
const int DefaultModifier;
|
||||||
} g_HKData[] = {
|
} g_HKData[] = {
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
{ "Open", 79 /* 'O' */, 8 /* wxMOD_CMD */ },
|
{ "Open", 79 /* 'O' */, 2 /* wxMOD_CMD */ },
|
||||||
{ "ChangeDisc", 0, 0 /* wxMOD_NONE */ },
|
{ "ChangeDisc", 0, 0 /* wxMOD_NONE */ },
|
||||||
{ "RefreshList", 0, 0 /* wxMOD_NONE */ },
|
{ "RefreshList", 0, 0 /* wxMOD_NONE */ },
|
||||||
|
|
||||||
{ "PlayPause", 80 /* 'P' */, 8 /* wxMOD_CMD */ },
|
{ "PlayPause", 80 /* 'P' */, 2 /* wxMOD_CMD */ },
|
||||||
{ "Stop", 87 /* 'W' */, 8 /* wxMOD_CMD */ },
|
{ "Stop", 87 /* 'W' */, 2 /* wxMOD_CMD */ },
|
||||||
{ "Reset", 0, 0 /* wxMOD_NONE */ },
|
{ "Reset", 0, 0 /* wxMOD_NONE */ },
|
||||||
{ "FrameAdvance", 0, 0 /* wxMOD_NONE */ },
|
{ "FrameAdvance", 0, 0 /* wxMOD_NONE */ },
|
||||||
|
|
||||||
|
@ -46,13 +46,13 @@ static const struct {
|
||||||
{ "ExportRecording", 0, 0 /* wxMOD_NONE */ },
|
{ "ExportRecording", 0, 0 /* wxMOD_NONE */ },
|
||||||
{ "Readonlymode", 0, 0 /* wxMOD_NONE */ },
|
{ "Readonlymode", 0, 0 /* wxMOD_NONE */ },
|
||||||
|
|
||||||
{ "ToggleFullscreen", 70 /* 'F' */, 8 /* wxMOD_CMD */ },
|
{ "ToggleFullscreen", 70 /* 'F' */, 2 /* wxMOD_CMD */ },
|
||||||
{ "Screenshot", 83 /* 'S' */, 8 /* wxMOD_CMD */ },
|
{ "Screenshot", 83 /* 'S' */, 2 /* wxMOD_CMD */ },
|
||||||
|
|
||||||
{ "Wiimote1Connect", 49 /* '1' */, 8 /* wxMOD_CMD */ },
|
{ "Wiimote1Connect", 49 /* '1' */, 2 /* wxMOD_CMD */ },
|
||||||
{ "Wiimote2Connect", 50 /* '2' */, 8 /* wxMOD_CMD */ },
|
{ "Wiimote2Connect", 50 /* '2' */, 2 /* wxMOD_CMD */ },
|
||||||
{ "Wiimote3Connect", 51 /* '3' */, 8 /* wxMOD_CMD */ },
|
{ "Wiimote3Connect", 51 /* '3' */, 2 /* wxMOD_CMD */ },
|
||||||
{ "Wiimote4Connect", 52 /* '4' */, 8 /* wxMOD_CMD */ },
|
{ "Wiimote4Connect", 52 /* '4' */, 2 /* wxMOD_CMD */ },
|
||||||
#else
|
#else
|
||||||
{ "Open", 79 /* 'O' */, 2 /* wxMOD_CONTROL */},
|
{ "Open", 79 /* 'O' */, 2 /* wxMOD_CONTROL */},
|
||||||
{ "ChangeDisc", 0, 0 /* wxMOD_NONE */ },
|
{ "ChangeDisc", 0, 0 /* wxMOD_NONE */ },
|
||||||
|
@ -190,6 +190,7 @@ void SConfig::SaveSettings()
|
||||||
ini.Set("Display", "RenderWindowWidth", m_LocalCoreStartupParameter.iRenderWindowWidth);
|
ini.Set("Display", "RenderWindowWidth", m_LocalCoreStartupParameter.iRenderWindowWidth);
|
||||||
ini.Set("Display", "RenderWindowHeight", m_LocalCoreStartupParameter.iRenderWindowHeight);
|
ini.Set("Display", "RenderWindowHeight", m_LocalCoreStartupParameter.iRenderWindowHeight);
|
||||||
ini.Set("Display", "RenderWindowAutoSize", m_LocalCoreStartupParameter.bRenderWindowAutoSize);
|
ini.Set("Display", "RenderWindowAutoSize", m_LocalCoreStartupParameter.bRenderWindowAutoSize);
|
||||||
|
ini.Set("Display", "KeepWindowOnTop", m_LocalCoreStartupParameter.bKeepWindowOnTop);
|
||||||
ini.Set("Display", "ProgressiveScan", m_LocalCoreStartupParameter.bProgressive);
|
ini.Set("Display", "ProgressiveScan", m_LocalCoreStartupParameter.bProgressive);
|
||||||
ini.Set("Display", "DisableScreenSaver", m_LocalCoreStartupParameter.bDisableScreenSaver);
|
ini.Set("Display", "DisableScreenSaver", m_LocalCoreStartupParameter.bDisableScreenSaver);
|
||||||
ini.Set("Display", "ForceNTSCJ", m_LocalCoreStartupParameter.bForceNTSCJ);
|
ini.Set("Display", "ForceNTSCJ", m_LocalCoreStartupParameter.bForceNTSCJ);
|
||||||
|
@ -319,6 +320,7 @@ void SConfig::LoadSettings()
|
||||||
ini.Get("Display", "RenderWindowWidth", &m_LocalCoreStartupParameter.iRenderWindowWidth, 640);
|
ini.Get("Display", "RenderWindowWidth", &m_LocalCoreStartupParameter.iRenderWindowWidth, 640);
|
||||||
ini.Get("Display", "RenderWindowHeight", &m_LocalCoreStartupParameter.iRenderWindowHeight, 480);
|
ini.Get("Display", "RenderWindowHeight", &m_LocalCoreStartupParameter.iRenderWindowHeight, 480);
|
||||||
ini.Get("Display", "RenderWindowAutoSize", &m_LocalCoreStartupParameter.bRenderWindowAutoSize, false);
|
ini.Get("Display", "RenderWindowAutoSize", &m_LocalCoreStartupParameter.bRenderWindowAutoSize, false);
|
||||||
|
ini.Get("Display", "KeepWindowOnTop", &m_LocalCoreStartupParameter.bKeepWindowOnTop, false);
|
||||||
ini.Get("Display", "ProgressiveScan", &m_LocalCoreStartupParameter.bProgressive, false);
|
ini.Get("Display", "ProgressiveScan", &m_LocalCoreStartupParameter.bProgressive, false);
|
||||||
ini.Get("Display", "DisableScreenSaver", &m_LocalCoreStartupParameter.bDisableScreenSaver, true);
|
ini.Get("Display", "DisableScreenSaver", &m_LocalCoreStartupParameter.bDisableScreenSaver, true);
|
||||||
ini.Get("Display", "ForceNTSCJ", &m_LocalCoreStartupParameter.bForceNTSCJ, false);
|
ini.Get("Display", "ForceNTSCJ", &m_LocalCoreStartupParameter.bForceNTSCJ, false);
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue