diff options
-rw-r--r-- | .github/ISSUE_TEMPLATE.md | 25 | ||||
-rwxr-xr-x | .travis-deps.sh | 4 | ||||
-rw-r--r-- | CMakeLists.txt | 12 | ||||
-rw-r--r-- | src/citra/config.cpp | 2 | ||||
-rw-r--r-- | src/citra/default_ini.h | 4 | ||||
-rw-r--r-- | src/citra_qt/config.cpp | 2 | ||||
-rw-r--r-- | src/core/arm/dyncom/arm_dyncom_interpreter.cpp | 13 |
7 files changed, 46 insertions, 16 deletions
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..4c9c7975a --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,25 @@ +<!--- + +Please read the FAQ: +https://citra-emu.org/wiki/FAQ + +THIS IS NOT A SUPPORT FORUM, FOR SUPPORT GO TO: +http://discuss.citra-emu.org/ + +If the FAQ does not answer your question, please go to: +http://discuss.citra-emu.org/ + +==================================================== + +When submitting an issue, please check the following: + +- You have read the above. +- You have provided the version (commit hash) of Citra you are using. +- You have provided sufficient detail for the issue to be reproduced. +- You have provided system specs (if relevant). +- Please also provide: + - For crashes, a backtrace. + - For graphical issues, comparison screenshots with real hardware. + - For emulation inaccuracies, a test-case (if able). + +--->
\ No newline at end of file diff --git a/.travis-deps.sh b/.travis-deps.sh index 10b69f5c4..aad9074bf 100755 --- a/.travis-deps.sh +++ b/.travis-deps.sh @@ -9,7 +9,7 @@ if [ "$TRAVIS_OS_NAME" = "linux" -o -z "$TRAVIS_OS_NAME" ]; then export CXX=g++-6 mkdir -p $HOME/.local - curl -L http://www.cmake.org/files/v3.1/cmake-3.1.0-Linux-i386.tar.gz \ + curl -L http://www.cmake.org/files/v3.2/cmake-3.2.0-Linux-i386.tar.gz \ | tar -xz -C $HOME/.local --strip-components=1 ( @@ -21,6 +21,6 @@ if [ "$TRAVIS_OS_NAME" = "linux" -o -z "$TRAVIS_OS_NAME" ]; then elif [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update > /dev/null # silence the very verbose output brew unlink cmake - brew install cmake31 qt5 sdl2 dylibbundler + brew install cmake qt5 sdl2 dylibbundler gem install xcpretty fi diff --git a/CMakeLists.txt b/CMakeLists.txt index 779eb8e50..6ac3df0e0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,5 @@ -# CMake 3.1 required for Qt5 settings to be applied automatically on -# dependent libraries and IMPORTED targets. -cmake_minimum_required(VERSION 3.1) +# CMake 3.2 required for cmake to know the right flags for CXX standard on OSX +cmake_minimum_required(VERSION 3.2) function(download_bundled_external remote_path lib_name prefix_var) set(prefix "${CMAKE_BINARY_DIR}/externals/${lib_name}") @@ -63,8 +62,11 @@ if (NOT DEFINED ARCHITECTURE) endif() message(STATUS "Target architecture: ${ARCHITECTURE}") +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + if (NOT MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y -Wno-attributes") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") else() # Silence "deprecation" warnings @@ -179,7 +181,7 @@ ENDIF (APPLE) if (ENABLE_QT) if (CITRA_USE_BUNDLED_QT) if (MSVC14 AND ARCHITECTURE_x86_64) - set(QT_VER qt-5.5-msvc2015_64) + set(QT_VER qt-5.7-msvc2015_64) else() message(FATAL_ERROR "No bundled Qt binaries for your toolchain. Disable CITRA_USE_BUNDLED_QT and provide your own.") endif() diff --git a/src/citra/config.cpp b/src/citra/config.cpp index 22cb51ea8..e832ec58d 100644 --- a/src/citra/config.cpp +++ b/src/citra/config.cpp @@ -68,7 +68,7 @@ void Config::ReadValues() { Settings::values.frame_skip = sdl2_config->GetInteger("Core", "frame_skip", 0); // Renderer - Settings::values.use_hw_renderer = sdl2_config->GetBoolean("Renderer", "use_hw_renderer", false); + Settings::values.use_hw_renderer = sdl2_config->GetBoolean("Renderer", "use_hw_renderer", true); Settings::values.use_shader_jit = sdl2_config->GetBoolean("Renderer", "use_shader_jit", true); Settings::values.use_scaled_resolution = sdl2_config->GetBoolean("Renderer", "use_scaled_resolution", false); diff --git a/src/citra/default_ini.h b/src/citra/default_ini.h index 4e63f3206..6249ef9e2 100644 --- a/src/citra/default_ini.h +++ b/src/citra/default_ini.h @@ -44,11 +44,11 @@ frame_skip = [Renderer] # Whether to use software or hardware rendering. -# 0 (default): Software, 1: Hardware +# 0: Software, 1 (default): Hardware use_hw_renderer = # Whether to use the Just-In-Time (JIT) compiler for shader emulation -# 0 : Interpreter (slow), 1 (default): JIT (fast) +# 0: Interpreter (slow), 1 (default): JIT (fast) use_shader_jit = # Whether to use native 3DS screen resolution or to scale rendering resolution to the displayed screen size. diff --git a/src/citra_qt/config.cpp b/src/citra_qt/config.cpp index 0e5f285c0..93c6a6e41 100644 --- a/src/citra_qt/config.cpp +++ b/src/citra_qt/config.cpp @@ -45,7 +45,7 @@ void Config::ReadValues() { qt_config->endGroup(); qt_config->beginGroup("Renderer"); - Settings::values.use_hw_renderer = qt_config->value("use_hw_renderer", false).toBool(); + Settings::values.use_hw_renderer = qt_config->value("use_hw_renderer", true).toBool(); Settings::values.use_shader_jit = qt_config->value("use_shader_jit", true).toBool(); Settings::values.use_scaled_resolution = qt_config->value("use_scaled_resolution", false).toBool(); diff --git a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp index 01d5d478e..c8d45c6db 100644 --- a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp +++ b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp @@ -2820,10 +2820,12 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) { operand2 = (BIT(RS, 15)) ? (BITS(RS, 0, 15) | 0xffff0000) : BITS(RS, 0, 15); else operand2 = (BIT(RS, 31)) ? (BITS(RS, 16, 31) | 0xffff0000) : BITS(RS, 16, 31); - RD = operand1 * operand2 + RN; - if (AddOverflow(operand1 * operand2, RN, RD)) + u32 product = operand1 * operand2; + u32 result = product + RN; + if (AddOverflow(product, RN, result)) cpu->Cpsr |= (1 << 27); + RD = result; } cpu->Reg[15] += cpu->GetInstructionSize(); INC_PC(sizeof(smla_inst)); @@ -3228,7 +3230,7 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) { addr += 4; } if (BIT(inst_cream->inst, 15)) { - cpu->WriteMemory32(addr, cpu->Reg_usr[1] + 8); + cpu->WriteMemory32(addr, cpu->Reg[15] + 8); } } else { for (int i = 0; i < 15; i++) { @@ -3243,8 +3245,9 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) { } // Check PC reg - if (BIT(inst_cream->inst, 15)) - cpu->WriteMemory32(addr, cpu->Reg_usr[1] + 8); + if (BIT(inst_cream->inst, 15)) { + cpu->WriteMemory32(addr, cpu->Reg[15] + 8); + } } } cpu->Reg[15] += cpu->GetInstructionSize(); |