diff options
Diffstat (limited to 'src')
58 files changed, 140 insertions, 140 deletions
diff --git a/src/citra/resource.h b/src/citra/resource.h index 0d42c8a8a..127896424 100644 --- a/src/citra/resource.h +++ b/src/citra/resource.h | |||
| Binary files differ | |||
diff --git a/src/citra_qt/CMakeLists.txt b/src/citra_qt/CMakeLists.txt index efccdbec6..c05779380 100644 --- a/src/citra_qt/CMakeLists.txt +++ b/src/citra_qt/CMakeLists.txt | |||
| @@ -89,15 +89,15 @@ if (Qt5_FOUND AND MSVC) | |||
| 89 | ) | 89 | ) |
| 90 | set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/$<CONFIG>/") | 90 | set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/$<CONFIG>/") |
| 91 | set(PLATFORMS ${DLL_DEST}platforms/) | 91 | set(PLATFORMS ${DLL_DEST}platforms/) |
| 92 | 92 | ||
| 93 | # windows commandline expects the / to be \ so switch them | 93 | # windows commandline expects the / to be \ so switch them |
| 94 | string(REPLACE "/" "\\" Qt5_DLL_DIR ${Qt5_DLL_DIR}) | 94 | string(REPLACE "/" "\\" Qt5_DLL_DIR ${Qt5_DLL_DIR}) |
| 95 | string(REPLACE "/" "\\" Qt5_PLATFORMS_DIR ${Qt5_PLATFORMS_DIR}) | 95 | string(REPLACE "/" "\\" Qt5_PLATFORMS_DIR ${Qt5_PLATFORMS_DIR}) |
| 96 | string(REPLACE "/" "\\" DLL_DEST ${DLL_DEST}) | 96 | string(REPLACE "/" "\\" DLL_DEST ${DLL_DEST}) |
| 97 | string(REPLACE "/" "\\" PLATFORMS ${PLATFORMS}) | 97 | string(REPLACE "/" "\\" PLATFORMS ${PLATFORMS}) |
| 98 | 98 | ||
| 99 | # /NJH /NJS /NDL /NFL /NC /NS /NP - Silence any output | 99 | # /NJH /NJS /NDL /NFL /NC /NS /NP - Silence any output |
| 100 | # cmake adds an extra check for command success which doesn't work too well with robocopy | 100 | # cmake adds an extra check for command success which doesn't work too well with robocopy |
| 101 | # so trick it into thinking the command was successful with the || cmd /c "exit /b 0" | 101 | # so trick it into thinking the command was successful with the || cmd /c "exit /b 0" |
| 102 | add_custom_command(TARGET citra-qt POST_BUILD | 102 | add_custom_command(TARGET citra-qt POST_BUILD |
| 103 | COMMAND robocopy ${Qt5_DLL_DIR} ${DLL_DEST} ${Qt5_DLLS} /NJH /NJS /NDL /NFL /NC /NS /NP || cmd /c "exit /b 0" | 103 | COMMAND robocopy ${Qt5_DLL_DIR} ${DLL_DEST} ${Qt5_DLLS} /NJH /NJS /NDL /NFL /NC /NS /NP || cmd /c "exit /b 0" |
diff --git a/src/citra_qt/bootmanager.cpp b/src/citra_qt/bootmanager.cpp index 72b55e94d..3db09c65b 100644 --- a/src/citra_qt/bootmanager.cpp +++ b/src/citra_qt/bootmanager.cpp | |||
| @@ -57,7 +57,7 @@ void EmuThread::run() { | |||
| 57 | Core::SingleStep(); | 57 | Core::SingleStep(); |
| 58 | emit DebugModeEntered(); | 58 | emit DebugModeEntered(); |
| 59 | yieldCurrentThread(); | 59 | yieldCurrentThread(); |
| 60 | 60 | ||
| 61 | was_active = false; | 61 | was_active = false; |
| 62 | } else { | 62 | } else { |
| 63 | std::unique_lock<std::mutex> lock(running_mutex); | 63 | std::unique_lock<std::mutex> lock(running_mutex); |
diff --git a/src/citra_qt/bootmanager.h b/src/citra_qt/bootmanager.h index 16809eaae..475124319 100644 --- a/src/citra_qt/bootmanager.h +++ b/src/citra_qt/bootmanager.h | |||
| @@ -80,7 +80,7 @@ signals: | |||
| 80 | * @warning When connecting to this signal from other threads, make sure to specify either Qt::QueuedConnection (invoke slot within the destination object's message thread) or even Qt::BlockingQueuedConnection (additionally block source thread until slot returns) | 80 | * @warning When connecting to this signal from other threads, make sure to specify either Qt::QueuedConnection (invoke slot within the destination object's message thread) or even Qt::BlockingQueuedConnection (additionally block source thread until slot returns) |
| 81 | */ | 81 | */ |
| 82 | void DebugModeEntered(); | 82 | void DebugModeEntered(); |
| 83 | 83 | ||
| 84 | /** | 84 | /** |
| 85 | * Emitted right before the CPU continues execution | 85 | * Emitted right before the CPU continues execution |
| 86 | * | 86 | * |
diff --git a/src/citra_qt/debugger/callstack.cpp b/src/citra_qt/debugger/callstack.cpp index 94e204717..6799ce844 100644 --- a/src/citra_qt/debugger/callstack.cpp +++ b/src/citra_qt/debugger/callstack.cpp | |||
| @@ -39,7 +39,7 @@ void CallstackWidget::OnDebugModeEntered() | |||
| 39 | { | 39 | { |
| 40 | ret_addr = Memory::Read32(addr); | 40 | ret_addr = Memory::Read32(addr); |
| 41 | call_addr = ret_addr - 4; //get call address??? | 41 | call_addr = ret_addr - 4; //get call address??? |
| 42 | 42 | ||
| 43 | if (Memory::GetPointer(call_addr) == nullptr) | 43 | if (Memory::GetPointer(call_addr) == nullptr) |
| 44 | break; | 44 | break; |
| 45 | 45 | ||
diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp index f6010459a..8041816a0 100644 --- a/src/citra_qt/main.cpp +++ b/src/citra_qt/main.cpp | |||
| @@ -127,7 +127,7 @@ GMainWindow::GMainWindow() : emu_thread(nullptr) | |||
| 127 | 127 | ||
| 128 | ui.action_Use_Hardware_Renderer->setChecked(Settings::values.use_hw_renderer); | 128 | ui.action_Use_Hardware_Renderer->setChecked(Settings::values.use_hw_renderer); |
| 129 | SetHardwareRendererEnabled(ui.action_Use_Hardware_Renderer->isChecked()); | 129 | SetHardwareRendererEnabled(ui.action_Use_Hardware_Renderer->isChecked()); |
| 130 | 130 | ||
| 131 | ui.action_Single_Window_Mode->setChecked(settings.value("singleWindowMode", true).toBool()); | 131 | ui.action_Single_Window_Mode->setChecked(settings.value("singleWindowMode", true).toBool()); |
| 132 | ToggleWindowMode(); | 132 | ToggleWindowMode(); |
| 133 | 133 | ||
diff --git a/src/common/emu_window.cpp b/src/common/emu_window.cpp index f5b6c7301..43facb85c 100644 --- a/src/common/emu_window.cpp +++ b/src/common/emu_window.cpp | |||
| @@ -32,7 +32,7 @@ std::tuple<unsigned,unsigned> EmuWindow::ClipToTouchScreen(unsigned new_x, unsig | |||
| 32 | 32 | ||
| 33 | new_x = std::max(new_x, framebuffer_layout.bottom_screen.left); | 33 | new_x = std::max(new_x, framebuffer_layout.bottom_screen.left); |
| 34 | new_x = std::min(new_x, framebuffer_layout.bottom_screen.right-1); | 34 | new_x = std::min(new_x, framebuffer_layout.bottom_screen.right-1); |
| 35 | 35 | ||
| 36 | new_y = std::max(new_y, framebuffer_layout.bottom_screen.top); | 36 | new_y = std::max(new_y, framebuffer_layout.bottom_screen.top); |
| 37 | new_y = std::min(new_y, framebuffer_layout.bottom_screen.bottom-1); | 37 | new_y = std::min(new_y, framebuffer_layout.bottom_screen.bottom-1); |
| 38 | 38 | ||
diff --git a/src/common/file_util.cpp b/src/common/file_util.cpp index 7cdd1484f..24648ea33 100644 --- a/src/common/file_util.cpp +++ b/src/common/file_util.cpp | |||
| @@ -16,7 +16,7 @@ | |||
| 16 | #include <io.h> | 16 | #include <io.h> |
| 17 | #include <direct.h> // getcwd | 17 | #include <direct.h> // getcwd |
| 18 | #include <tchar.h> | 18 | #include <tchar.h> |
| 19 | 19 | ||
| 20 | // 64 bit offsets for windows | 20 | // 64 bit offsets for windows |
| 21 | #define fseeko _fseeki64 | 21 | #define fseeko _fseeki64 |
| 22 | #define ftello _ftelli64 | 22 | #define ftello _ftelli64 |
diff --git a/src/common/swap.h b/src/common/swap.h index 7e37655bf..588cebc70 100644 --- a/src/common/swap.h +++ b/src/common/swap.h | |||
| @@ -135,7 +135,7 @@ template <> | |||
| 135 | inline void swap<8>(u8* data) { | 135 | inline void swap<8>(u8* data) { |
| 136 | *reinterpret_cast<u64*>(data) = swap64(data); | 136 | *reinterpret_cast<u64*>(data) = swap64(data); |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | } // Namespace Common | 139 | } // Namespace Common |
| 140 | 140 | ||
| 141 | 141 | ||
diff --git a/src/core/arm/disassembler/arm_disasm.cpp b/src/core/arm/disassembler/arm_disasm.cpp index 913dc1454..f6d44d85a 100644 --- a/src/core/arm/disassembler/arm_disasm.cpp +++ b/src/core/arm/disassembler/arm_disasm.cpp | |||
| @@ -813,7 +813,7 @@ Opcode ARM_Disasm::Decode11(uint32_t insn) { | |||
| 813 | // SWI | 813 | // SWI |
| 814 | return OP_SWI; | 814 | return OP_SWI; |
| 815 | } | 815 | } |
| 816 | 816 | ||
| 817 | uint8_t bit4 = (insn >> 4) & 0x1; | 817 | uint8_t bit4 = (insn >> 4) & 0x1; |
| 818 | uint8_t cpnum = (insn >> 8) & 0xf; | 818 | uint8_t cpnum = (insn >> 8) & 0xf; |
| 819 | 819 | ||
diff --git a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp index b5d1b43cd..b00eb49a9 100644 --- a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp +++ b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp | |||
| @@ -134,7 +134,7 @@ static unsigned int DPO(Immediate)(ARMul_State* cpu, unsigned int sht_oper) { | |||
| 134 | unsigned int immed_8 = BITS(sht_oper, 0, 7); | 134 | unsigned int immed_8 = BITS(sht_oper, 0, 7); |
| 135 | unsigned int rotate_imm = BITS(sht_oper, 8, 11); | 135 | unsigned int rotate_imm = BITS(sht_oper, 8, 11); |
| 136 | unsigned int shifter_operand = ROTATE_RIGHT_32(immed_8, rotate_imm * 2); | 136 | unsigned int shifter_operand = ROTATE_RIGHT_32(immed_8, rotate_imm * 2); |
| 137 | if (rotate_imm == 0) | 137 | if (rotate_imm == 0) |
| 138 | cpu->shifter_carry_out = cpu->CFlag; | 138 | cpu->shifter_carry_out = cpu->CFlag; |
| 139 | else | 139 | else |
| 140 | cpu->shifter_carry_out = BIT(shifter_operand, 31); | 140 | cpu->shifter_carry_out = BIT(shifter_operand, 31); |
| @@ -521,7 +521,7 @@ static void MLnS(ImmediateOffset)(ARMul_State* cpu, unsigned int inst, unsigned | |||
| 521 | addr = CHECK_READ_REG15_WA(cpu, Rn) + offset_8; | 521 | addr = CHECK_READ_REG15_WA(cpu, Rn) + offset_8; |
| 522 | else | 522 | else |
| 523 | addr = CHECK_READ_REG15_WA(cpu, Rn) - offset_8; | 523 | addr = CHECK_READ_REG15_WA(cpu, Rn) - offset_8; |
| 524 | 524 | ||
| 525 | virt_addr = addr; | 525 | virt_addr = addr; |
| 526 | } | 526 | } |
| 527 | 527 | ||
| @@ -550,7 +550,7 @@ static void MLnS(ImmediatePreIndexed)(ARMul_State* cpu, unsigned int inst, unsig | |||
| 550 | 550 | ||
| 551 | if (U_BIT) | 551 | if (U_BIT) |
| 552 | addr = rn + offset_8; | 552 | addr = rn + offset_8; |
| 553 | else | 553 | else |
| 554 | addr = rn - offset_8; | 554 | addr = rn - offset_8; |
| 555 | 555 | ||
| 556 | virt_addr = addr; | 556 | virt_addr = addr; |
| @@ -1306,8 +1306,8 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(and)(unsigned int inst, int index) | |||
| 1306 | inst_cream->Rd = BITS(inst, 12, 15); | 1306 | inst_cream->Rd = BITS(inst, 12, 15); |
| 1307 | inst_cream->shifter_operand = BITS(inst, 0, 11); | 1307 | inst_cream->shifter_operand = BITS(inst, 0, 11); |
| 1308 | inst_cream->shtop_func = get_shtop(inst); | 1308 | inst_cream->shtop_func = get_shtop(inst); |
| 1309 | 1309 | ||
| 1310 | if (inst_cream->Rd == 15) | 1310 | if (inst_cream->Rd == 15) |
| 1311 | inst_base->br = INDIRECT_BRANCH; | 1311 | inst_base->br = INDIRECT_BRANCH; |
| 1312 | 1312 | ||
| 1313 | return inst_base; | 1313 | return inst_base; |
| @@ -1350,7 +1350,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(bic)(unsigned int inst, int index) | |||
| 1350 | inst_cream->shifter_operand = BITS(inst, 0, 11); | 1350 | inst_cream->shifter_operand = BITS(inst, 0, 11); |
| 1351 | inst_cream->shtop_func = get_shtop(inst); | 1351 | inst_cream->shtop_func = get_shtop(inst); |
| 1352 | 1352 | ||
| 1353 | if (inst_cream->Rd == 15) | 1353 | if (inst_cream->Rd == 15) |
| 1354 | inst_base->br = INDIRECT_BRANCH; | 1354 | inst_base->br = INDIRECT_BRANCH; |
| 1355 | return inst_base; | 1355 | return inst_base; |
| 1356 | } | 1356 | } |
| @@ -3269,7 +3269,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(yield)(unsigned int inst, int index) | |||
| 3269 | #define VFP_INTERPRETER_STRUCT | 3269 | #define VFP_INTERPRETER_STRUCT |
| 3270 | #include "core/arm/skyeye_common/vfp/vfpinstr.cpp" | 3270 | #include "core/arm/skyeye_common/vfp/vfpinstr.cpp" |
| 3271 | #undef VFP_INTERPRETER_STRUCT | 3271 | #undef VFP_INTERPRETER_STRUCT |
| 3272 | 3272 | ||
| 3273 | #define VFP_INTERPRETER_TRANS | 3273 | #define VFP_INTERPRETER_TRANS |
| 3274 | #include "core/arm/skyeye_common/vfp/vfpinstr.cpp" | 3274 | #include "core/arm/skyeye_common/vfp/vfpinstr.cpp" |
| 3275 | #undef VFP_INTERPRETER_TRANS | 3275 | #undef VFP_INTERPRETER_TRANS |
| @@ -3478,9 +3478,9 @@ const transop_fp_t arm_instruction_trans[] = { | |||
| 3478 | INTERPRETER_TRANSLATE(bbl), | 3478 | INTERPRETER_TRANSLATE(bbl), |
| 3479 | 3479 | ||
| 3480 | // All the thumb instructions should be placed the end of table | 3480 | // All the thumb instructions should be placed the end of table |
| 3481 | INTERPRETER_TRANSLATE(b_2_thumb), | 3481 | INTERPRETER_TRANSLATE(b_2_thumb), |
| 3482 | INTERPRETER_TRANSLATE(b_cond_thumb), | 3482 | INTERPRETER_TRANSLATE(b_cond_thumb), |
| 3483 | INTERPRETER_TRANSLATE(bl_1_thumb), | 3483 | INTERPRETER_TRANSLATE(bl_1_thumb), |
| 3484 | INTERPRETER_TRANSLATE(bl_2_thumb), | 3484 | INTERPRETER_TRANSLATE(bl_2_thumb), |
| 3485 | INTERPRETER_TRANSLATE(blx_1_thumb) | 3485 | INTERPRETER_TRANSLATE(blx_1_thumb) |
| 3486 | }; | 3486 | }; |
| @@ -4338,7 +4338,7 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) { | |||
| 4338 | } | 4338 | } |
| 4339 | } | 4339 | } |
| 4340 | if (BIT(inst, 13)) { | 4340 | if (BIT(inst, 13)) { |
| 4341 | if (cpu->Mode == USER32MODE) | 4341 | if (cpu->Mode == USER32MODE) |
| 4342 | cpu->Reg[13] = ReadMemory32(cpu, addr); | 4342 | cpu->Reg[13] = ReadMemory32(cpu, addr); |
| 4343 | else | 4343 | else |
| 4344 | cpu->Reg_usr[0] = ReadMemory32(cpu, addr); | 4344 | cpu->Reg_usr[0] = ReadMemory32(cpu, addr); |
| @@ -4346,7 +4346,7 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) { | |||
| 4346 | addr += 4; | 4346 | addr += 4; |
| 4347 | } | 4347 | } |
| 4348 | if (BIT(inst, 14)) { | 4348 | if (BIT(inst, 14)) { |
| 4349 | if (cpu->Mode == USER32MODE) | 4349 | if (cpu->Mode == USER32MODE) |
| 4350 | cpu->Reg[14] = ReadMemory32(cpu, addr); | 4350 | cpu->Reg[14] = ReadMemory32(cpu, addr); |
| 4351 | else | 4351 | else |
| 4352 | cpu->Reg_usr[1] = ReadMemory32(cpu, addr); | 4352 | cpu->Reg_usr[1] = ReadMemory32(cpu, addr); |
| @@ -5148,7 +5148,7 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) { | |||
| 5148 | REV16_INST: | 5148 | REV16_INST: |
| 5149 | REVSH_INST: | 5149 | REVSH_INST: |
| 5150 | { | 5150 | { |
| 5151 | 5151 | ||
| 5152 | if (inst_base->cond == 0xE || CondPassed(cpu, inst_base->cond)) { | 5152 | if (inst_base->cond == 0xE || CondPassed(cpu, inst_base->cond)) { |
| 5153 | rev_inst* const inst_cream = (rev_inst*)inst_base->component; | 5153 | rev_inst* const inst_cream = (rev_inst*)inst_base->component; |
| 5154 | 5154 | ||
| @@ -5721,7 +5721,7 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) { | |||
| 5721 | 5721 | ||
| 5722 | if (do_swap) | 5722 | if (do_swap) |
| 5723 | rm_val = (((rm_val & 0xFFFF) << 16) | (rm_val >> 16)); | 5723 | rm_val = (((rm_val & 0xFFFF) << 16) | (rm_val >> 16)); |
| 5724 | 5724 | ||
| 5725 | const s32 product1 = (s16)(rn_val & 0xFFFF) * (s16)(rm_val & 0xFFFF); | 5725 | const s32 product1 = (s16)(rn_val & 0xFFFF) * (s16)(rm_val & 0xFFFF); |
| 5726 | const s32 product2 = (s16)((rn_val >> 16) & 0xFFFF) * (s16)((rm_val >> 16) & 0xFFFF); | 5726 | const s32 product2 = (s16)((rn_val >> 16) & 0xFFFF) * (s16)((rm_val >> 16) & 0xFFFF); |
| 5727 | s64 result; | 5727 | s64 result; |
| @@ -6583,7 +6583,7 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) { | |||
| 6583 | { | 6583 | { |
| 6584 | u32 lo_val = 0; | 6584 | u32 lo_val = 0; |
| 6585 | u32 hi_val = 0; | 6585 | u32 hi_val = 0; |
| 6586 | 6586 | ||
| 6587 | // UHADD16 | 6587 | // UHADD16 |
| 6588 | if (op2 == 0x00) { | 6588 | if (op2 == 0x00) { |
| 6589 | lo_val = (rn_val & 0xFFFF) + (rm_val & 0xFFFF); | 6589 | lo_val = (rn_val & 0xFFFF) + (rm_val & 0xFFFF); |
| @@ -6772,7 +6772,7 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) { | |||
| 6772 | 6772 | ||
| 6773 | u16 lo_val = 0; | 6773 | u16 lo_val = 0; |
| 6774 | u16 hi_val = 0; | 6774 | u16 hi_val = 0; |
| 6775 | 6775 | ||
| 6776 | // UQADD16 | 6776 | // UQADD16 |
| 6777 | if (op2 == 0x00) { | 6777 | if (op2 == 0x00) { |
| 6778 | lo_val = ARMul_UnsignedSaturatedAdd16(rn_val & 0xFFFF, rm_val & 0xFFFF); | 6778 | lo_val = ARMul_UnsignedSaturatedAdd16(rn_val & 0xFFFF, rm_val & 0xFFFF); |
diff --git a/src/core/arm/dyncom/arm_dyncom_thumb.cpp b/src/core/arm/dyncom/arm_dyncom_thumb.cpp index cdaf21450..2fc8170be 100644 --- a/src/core/arm/dyncom/arm_dyncom_thumb.cpp +++ b/src/core/arm/dyncom/arm_dyncom_thumb.cpp | |||
| @@ -184,7 +184,7 @@ tdstate thumb_translate(u32 addr, u32 instr, u32* ainstr, u32* inst_size) { | |||
| 184 | case 9: // LDR Rd,[PC,#imm8] | 184 | case 9: // LDR Rd,[PC,#imm8] |
| 185 | *ainstr = 0xE59F0000 // base | 185 | *ainstr = 0xE59F0000 // base |
| 186 | | ((tinstr & 0x0700) << (12 - 8)) // Rd | 186 | | ((tinstr & 0x0700) << (12 - 8)) // Rd |
| 187 | |((tinstr & 0x00FF) << (2 - 0)); // off8 | 187 | |((tinstr & 0x00FF) << (2 - 0)); // off8 |
| 188 | break; | 188 | break; |
| 189 | 189 | ||
| 190 | case 10: | 190 | case 10: |
diff --git a/src/core/arm/interpreter/armsupp.cpp b/src/core/arm/interpreter/armsupp.cpp index 1b078dc71..83f7f3e2c 100644 --- a/src/core/arm/interpreter/armsupp.cpp +++ b/src/core/arm/interpreter/armsupp.cpp | |||
| @@ -628,7 +628,7 @@ void WriteCP15Register(ARMul_State* cpu, u32 value, u32 crn, u32 opcode_1, u32 c | |||
| 628 | cpu->CP15[CP15_DATA_SYNC_BARRIER] = value; | 628 | cpu->CP15[CP15_DATA_SYNC_BARRIER] = value; |
| 629 | else if (opcode_2 == 5) | 629 | else if (opcode_2 == 5) |
| 630 | cpu->CP15[CP15_DATA_MEMORY_BARRIER] = value; | 630 | cpu->CP15[CP15_DATA_MEMORY_BARRIER] = value; |
| 631 | 631 | ||
| 632 | } | 632 | } |
| 633 | else if (crn == 13 && opcode_1 == 0 && crm == 0 && opcode_2 == 2) | 633 | else if (crn == 13 && opcode_1 == 0 && crm == 0 && opcode_2 == 2) |
| 634 | { | 634 | { |
diff --git a/src/core/arm/skyeye_common/armdefs.h b/src/core/arm/skyeye_common/armdefs.h index 08ece69b6..d2c901100 100644 --- a/src/core/arm/skyeye_common/armdefs.h +++ b/src/core/arm/skyeye_common/armdefs.h | |||
| @@ -1,16 +1,16 @@ | |||
| 1 | /* armdefs.h -- ARMulator common definitions: ARM6 Instruction Emulator. | 1 | /* armdefs.h -- ARMulator common definitions: ARM6 Instruction Emulator. |
| 2 | Copyright (C) 1994 Advanced RISC Machines Ltd. | 2 | Copyright (C) 1994 Advanced RISC Machines Ltd. |
| 3 | 3 | ||
| 4 | This program is free software; you can redistribute it and/or modify | 4 | This program is free software; you can redistribute it and/or modify |
| 5 | it under the terms of the GNU General Public License as published by | 5 | it under the terms of the GNU General Public License as published by |
| 6 | the Free Software Foundation; either version 2 of the License, or | 6 | the Free Software Foundation; either version 2 of the License, or |
| 7 | (at your option) any later version. | 7 | (at your option) any later version. |
| 8 | 8 | ||
| 9 | This program is distributed in the hope that it will be useful, | 9 | This program is distributed in the hope that it will be useful, |
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 12 | GNU General Public License for more details. | 12 | GNU General Public License for more details. |
| 13 | 13 | ||
| 14 | You should have received a copy of the GNU General Public License | 14 | You should have received a copy of the GNU General Public License |
| 15 | along with this program; if not, write to the Free Software | 15 | along with this program; if not, write to the Free Software |
| 16 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | 16 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ |
diff --git a/src/core/arm/skyeye_common/vfp/vfp_helper.h b/src/core/arm/skyeye_common/vfp/vfp_helper.h index ccc0212ab..2007d6dc4 100644 --- a/src/core/arm/skyeye_common/vfp/vfp_helper.h +++ b/src/core/arm/skyeye_common/vfp/vfp_helper.h | |||
| @@ -18,10 +18,10 @@ | |||
| 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| 19 | */ | 19 | */ |
| 20 | 20 | ||
| 21 | /* | 21 | /* |
| 22 | * The following code is derivative from Linux Android kernel vfp | 22 | * The following code is derivative from Linux Android kernel vfp |
| 23 | * floating point support. | 23 | * floating point support. |
| 24 | * | 24 | * |
| 25 | * Copyright (C) 2004 ARM Limited. | 25 | * Copyright (C) 2004 ARM Limited. |
| 26 | * Written by Deep Blue Solutions Limited. | 26 | * Written by Deep Blue Solutions Limited. |
| 27 | * | 27 | * |
diff --git a/src/core/core_timing.cpp b/src/core/core_timing.cpp index f70c84c3d..e53c2e606 100644 --- a/src/core/core_timing.cpp +++ b/src/core/core_timing.cpp | |||
| @@ -549,7 +549,7 @@ std::string GetScheduledEventsSummary() { | |||
| 549 | const char* name = event_types[event->type].name; | 549 | const char* name = event_types[event->type].name; |
| 550 | if (!name) | 550 | if (!name) |
| 551 | name = "[unknown]"; | 551 | name = "[unknown]"; |
| 552 | text += Common::StringFromFormat("%s : %i %08x%08x\n", name, (int)event->time, | 552 | text += Common::StringFromFormat("%s : %i %08x%08x\n", name, (int)event->time, |
| 553 | (u32)(event->userdata >> 32), (u32)(event->userdata)); | 553 | (u32)(event->userdata >> 32), (u32)(event->userdata)); |
| 554 | event = event->next; | 554 | event = event->next; |
| 555 | } | 555 | } |
diff --git a/src/core/core_timing.h b/src/core/core_timing.h index 01519608d..64f5b06d9 100644 --- a/src/core/core_timing.h +++ b/src/core/core_timing.h | |||
| @@ -87,7 +87,7 @@ void UnregisterAllEvents(); | |||
| 87 | /// userdata MAY NOT CONTAIN POINTERS. userdata might get written and reloaded from disk, | 87 | /// userdata MAY NOT CONTAIN POINTERS. userdata might get written and reloaded from disk, |
| 88 | /// when we implement state saves. | 88 | /// when we implement state saves. |
| 89 | /** | 89 | /** |
| 90 | * Schedules an event to run after the specified number of cycles, | 90 | * Schedules an event to run after the specified number of cycles, |
| 91 | * with an optional parameter to be passed to the callback handler. | 91 | * with an optional parameter to be passed to the callback handler. |
| 92 | * This must be run ONLY from within the cpu thread. | 92 | * This must be run ONLY from within the cpu thread. |
| 93 | * @param cycles_into_future The number of cycles after which this event will be fired | 93 | * @param cycles_into_future The number of cycles after which this event will be fired |
diff --git a/src/core/file_sys/archive_extsavedata.cpp b/src/core/file_sys/archive_extsavedata.cpp index 38d498d0e..975aafb35 100644 --- a/src/core/file_sys/archive_extsavedata.cpp +++ b/src/core/file_sys/archive_extsavedata.cpp | |||
| @@ -30,8 +30,8 @@ std::string GetExtSaveDataPath(const std::string& mount_point, const Path& path) | |||
| 30 | std::string GetExtDataContainerPath(const std::string& mount_point, bool shared) { | 30 | std::string GetExtDataContainerPath(const std::string& mount_point, bool shared) { |
| 31 | if (shared) | 31 | if (shared) |
| 32 | return Common::StringFromFormat("%sdata/%s/extdata/", mount_point.c_str(), SYSTEM_ID.c_str()); | 32 | return Common::StringFromFormat("%sdata/%s/extdata/", mount_point.c_str(), SYSTEM_ID.c_str()); |
| 33 | 33 | ||
| 34 | return Common::StringFromFormat("%sNintendo 3DS/%s/%s/extdata/", mount_point.c_str(), | 34 | return Common::StringFromFormat("%sNintendo 3DS/%s/%s/extdata/", mount_point.c_str(), |
| 35 | SYSTEM_ID.c_str(), SDCARD_ID.c_str()); | 35 | SYSTEM_ID.c_str(), SDCARD_ID.c_str()); |
| 36 | } | 36 | } |
| 37 | 37 | ||
diff --git a/src/core/file_sys/archive_extsavedata.h b/src/core/file_sys/archive_extsavedata.h index c77c04e44..ef0b27bde 100644 --- a/src/core/file_sys/archive_extsavedata.h +++ b/src/core/file_sys/archive_extsavedata.h | |||
| @@ -35,14 +35,14 @@ public: | |||
| 35 | private: | 35 | private: |
| 36 | /** | 36 | /** |
| 37 | * This holds the full directory path for this archive, it is only set after a successful call | 37 | * This holds the full directory path for this archive, it is only set after a successful call |
| 38 | * to Open, this is formed as <base extsavedatapath>/<type>/<high>/<low>. | 38 | * to Open, this is formed as <base extsavedatapath>/<type>/<high>/<low>. |
| 39 | * See GetExtSaveDataPath for the code that extracts this data from an archive path. | 39 | * See GetExtSaveDataPath for the code that extracts this data from an archive path. |
| 40 | */ | 40 | */ |
| 41 | std::string mount_point; | 41 | std::string mount_point; |
| 42 | }; | 42 | }; |
| 43 | 43 | ||
| 44 | /** | 44 | /** |
| 45 | * Constructs a path to the concrete ExtData archive in the host filesystem based on the | 45 | * Constructs a path to the concrete ExtData archive in the host filesystem based on the |
| 46 | * input Path and base mount point. | 46 | * input Path and base mount point. |
| 47 | * @param mount_point The base mount point of the ExtSaveData archives. | 47 | * @param mount_point The base mount point of the ExtSaveData archives. |
| 48 | * @param path The path that identifies the requested concrete ExtSaveData archive. | 48 | * @param path The path that identifies the requested concrete ExtSaveData archive. |
diff --git a/src/core/file_sys/archive_savedata.cpp b/src/core/file_sys/archive_savedata.cpp index 8dff51966..a92309377 100644 --- a/src/core/file_sys/archive_savedata.cpp +++ b/src/core/file_sys/archive_savedata.cpp | |||
| @@ -21,7 +21,7 @@ | |||
| 21 | namespace FileSys { | 21 | namespace FileSys { |
| 22 | 22 | ||
| 23 | static std::string GetSaveDataContainerPath(const std::string& sdmc_directory) { | 23 | static std::string GetSaveDataContainerPath(const std::string& sdmc_directory) { |
| 24 | return Common::StringFromFormat("%sNintendo 3DS/%s/%s/title/", sdmc_directory.c_str(), | 24 | return Common::StringFromFormat("%sNintendo 3DS/%s/%s/title/", sdmc_directory.c_str(), |
| 25 | SYSTEM_ID.c_str(), SDCARD_ID.c_str()); | 25 | SYSTEM_ID.c_str(), SDCARD_ID.c_str()); |
| 26 | } | 26 | } |
| 27 | 27 | ||
diff --git a/src/core/hle/kernel/resource_limit.h b/src/core/hle/kernel/resource_limit.h index 201ec0db9..1b8249c74 100644 --- a/src/core/hle/kernel/resource_limit.h +++ b/src/core/hle/kernel/resource_limit.h | |||
| @@ -81,13 +81,13 @@ public: | |||
| 81 | s32 max_timers = 0; | 81 | s32 max_timers = 0; |
| 82 | s32 max_shared_mems = 0; | 82 | s32 max_shared_mems = 0; |
| 83 | s32 max_address_arbiters = 0; | 83 | s32 max_address_arbiters = 0; |
| 84 | 84 | ||
| 85 | /// Max CPU time that the processes in this category can utilize | 85 | /// Max CPU time that the processes in this category can utilize |
| 86 | s32 max_cpu_time = 0; | 86 | s32 max_cpu_time = 0; |
| 87 | 87 | ||
| 88 | // TODO(Subv): Increment these in their respective Kernel::T::Create functions, keeping in mind that | 88 | // TODO(Subv): Increment these in their respective Kernel::T::Create functions, keeping in mind that |
| 89 | // APPLICATION resource limits should not be affected by the objects created by service modules. | 89 | // APPLICATION resource limits should not be affected by the objects created by service modules. |
| 90 | // Currently we have no way of distinguishing if a Create was called by the running application, | 90 | // Currently we have no way of distinguishing if a Create was called by the running application, |
| 91 | // or by a service module. Approach this once we have separated the service modules into their own processes | 91 | // or by a service module. Approach this once we have separated the service modules into their own processes |
| 92 | 92 | ||
| 93 | /// Current memory that the processes in this category are using | 93 | /// Current memory that the processes in this category are using |
diff --git a/src/core/hle/kernel/semaphore.cpp b/src/core/hle/kernel/semaphore.cpp index dbb4c9b7f..96d61ed3a 100644 --- a/src/core/hle/kernel/semaphore.cpp +++ b/src/core/hle/kernel/semaphore.cpp | |||
| @@ -42,7 +42,7 @@ void Semaphore::Acquire() { | |||
| 42 | 42 | ||
| 43 | ResultVal<s32> Semaphore::Release(s32 release_count) { | 43 | ResultVal<s32> Semaphore::Release(s32 release_count) { |
| 44 | if (max_count - available_count < release_count) | 44 | if (max_count - available_count < release_count) |
| 45 | return ResultCode(ErrorDescription::OutOfRange, ErrorModule::Kernel, | 45 | return ResultCode(ErrorDescription::OutOfRange, ErrorModule::Kernel, |
| 46 | ErrorSummary::InvalidArgument, ErrorLevel::Permanent); | 46 | ErrorSummary::InvalidArgument, ErrorLevel::Permanent); |
| 47 | 47 | ||
| 48 | s32 previous_count = available_count; | 48 | s32 previous_count = available_count; |
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index 690d33b55..22c795ad4 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp | |||
| @@ -100,7 +100,7 @@ void Thread::Stop() { | |||
| 100 | } | 100 | } |
| 101 | 101 | ||
| 102 | status = THREADSTATUS_DEAD; | 102 | status = THREADSTATUS_DEAD; |
| 103 | 103 | ||
| 104 | WakeupAllWaitingThreads(); | 104 | WakeupAllWaitingThreads(); |
| 105 | 105 | ||
| 106 | // Clean up any dangling references in objects that this thread was waiting for | 106 | // Clean up any dangling references in objects that this thread was waiting for |
| @@ -169,7 +169,7 @@ static void PriorityBoostStarvedThreads() { | |||
| 169 | } | 169 | } |
| 170 | } | 170 | } |
| 171 | 171 | ||
| 172 | /** | 172 | /** |
| 173 | * Switches the CPU's active thread context to that of the specified thread | 173 | * Switches the CPU's active thread context to that of the specified thread |
| 174 | * @param new_thread The thread to switch to | 174 | * @param new_thread The thread to switch to |
| 175 | */ | 175 | */ |
| @@ -353,7 +353,7 @@ void Thread::ResumeFromWait() { | |||
| 353 | GetObjectId()); | 353 | GetObjectId()); |
| 354 | return; | 354 | return; |
| 355 | } | 355 | } |
| 356 | 356 | ||
| 357 | ready_queue.push_back(current_priority, this); | 357 | ready_queue.push_back(current_priority, this); |
| 358 | status = THREADSTATUS_READY; | 358 | status = THREADSTATUS_READY; |
| 359 | } | 359 | } |
| @@ -504,7 +504,7 @@ void Reschedule() { | |||
| 504 | } else if (next) { | 504 | } else if (next) { |
| 505 | LOG_TRACE(Kernel, "context switch idle -> %u", next->GetObjectId()); | 505 | LOG_TRACE(Kernel, "context switch idle -> %u", next->GetObjectId()); |
| 506 | } | 506 | } |
| 507 | 507 | ||
| 508 | SwitchContext(next); | 508 | SwitchContext(next); |
| 509 | } | 509 | } |
| 510 | 510 | ||
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h index 389928178..2c65419c3 100644 --- a/src/core/hle/kernel/thread.h +++ b/src/core/hle/kernel/thread.h | |||
| @@ -94,7 +94,7 @@ public: | |||
| 94 | * @return The thread's ID | 94 | * @return The thread's ID |
| 95 | */ | 95 | */ |
| 96 | u32 GetThreadId() const { return thread_id; } | 96 | u32 GetThreadId() const { return thread_id; } |
| 97 | 97 | ||
| 98 | /** | 98 | /** |
| 99 | * Release an acquired wait object | 99 | * Release an acquired wait object |
| 100 | * @param wait_object WaitObject to release | 100 | * @param wait_object WaitObject to release |
diff --git a/src/core/hle/kernel/timer.cpp b/src/core/hle/kernel/timer.cpp index 25d066bf1..8aa4110a6 100644 --- a/src/core/hle/kernel/timer.cpp +++ b/src/core/hle/kernel/timer.cpp | |||
| @@ -88,7 +88,7 @@ static void TimerCallback(u64 timer_handle, int cycles_late) { | |||
| 88 | if (timer->interval_delay != 0) { | 88 | if (timer->interval_delay != 0) { |
| 89 | // Reschedule the timer with the interval delay | 89 | // Reschedule the timer with the interval delay |
| 90 | u64 interval_microseconds = timer->interval_delay / 1000; | 90 | u64 interval_microseconds = timer->interval_delay / 1000; |
| 91 | CoreTiming::ScheduleEvent(usToCycles(interval_microseconds) - cycles_late, | 91 | CoreTiming::ScheduleEvent(usToCycles(interval_microseconds) - cycles_late, |
| 92 | timer_callback_event_type, timer_handle); | 92 | timer_callback_event_type, timer_handle); |
| 93 | } | 93 | } |
| 94 | } | 94 | } |
diff --git a/src/core/hle/service/apt/apt.cpp b/src/core/hle/service/apt/apt.cpp index 3fd4cfb08..5d14f393d 100644 --- a/src/core/hle/service/apt/apt.cpp +++ b/src/core/hle/service/apt/apt.cpp | |||
| @@ -151,7 +151,7 @@ void SendParameter(Service::Interface* self) { | |||
| 151 | u32 handle = cmd_buff[6]; | 151 | u32 handle = cmd_buff[6]; |
| 152 | u32 size = cmd_buff[7]; | 152 | u32 size = cmd_buff[7]; |
| 153 | u32 in_param_buffer_ptr = cmd_buff[8]; | 153 | u32 in_param_buffer_ptr = cmd_buff[8]; |
| 154 | 154 | ||
| 155 | cmd_buff[1] = RESULT_SUCCESS.raw; // No error | 155 | cmd_buff[1] = RESULT_SUCCESS.raw; // No error |
| 156 | 156 | ||
| 157 | LOG_WARNING(Service_APT, "(STUBBED) called src_app_id=0x%08X, dst_app_id=0x%08X, signal_type=0x%08X," | 157 | LOG_WARNING(Service_APT, "(STUBBED) called src_app_id=0x%08X, dst_app_id=0x%08X, signal_type=0x%08X," |
| @@ -283,7 +283,7 @@ void Init() { | |||
| 283 | AddService(new APT_A_Interface); | 283 | AddService(new APT_A_Interface); |
| 284 | AddService(new APT_S_Interface); | 284 | AddService(new APT_S_Interface); |
| 285 | AddService(new APT_U_Interface); | 285 | AddService(new APT_U_Interface); |
| 286 | 286 | ||
| 287 | // Load the shared system font (if available). | 287 | // Load the shared system font (if available). |
| 288 | // The expected format is a decrypted, uncompressed BCFNT file with the 0x80 byte header | 288 | // The expected format is a decrypted, uncompressed BCFNT file with the 0x80 byte header |
| 289 | // generated by the APT:U service. The best way to get is by dumping it from RAM. We've provided | 289 | // generated by the APT:U service. The best way to get is by dumping it from RAM. We've provided |
diff --git a/src/core/hle/service/apt/apt.h b/src/core/hle/service/apt/apt.h index e7fa39325..a03e1712a 100644 --- a/src/core/hle/service/apt/apt.h +++ b/src/core/hle/service/apt/apt.h | |||
| @@ -63,7 +63,7 @@ void Initialize(Service::Interface* self); | |||
| 63 | * 4 : Handle to shared font memory | 63 | * 4 : Handle to shared font memory |
| 64 | */ | 64 | */ |
| 65 | void GetSharedFont(Service::Interface* self); | 65 | void GetSharedFont(Service::Interface* self); |
| 66 | 66 | ||
| 67 | /** | 67 | /** |
| 68 | * APT::NotifyToWait service function | 68 | * APT::NotifyToWait service function |
| 69 | * Inputs: | 69 | * Inputs: |
| @@ -88,7 +88,7 @@ void Enable(Service::Interface* self); | |||
| 88 | * 4 : Home Menu AppId | 88 | * 4 : Home Menu AppId |
| 89 | * 5 : AppID of currently active app | 89 | * 5 : AppID of currently active app |
| 90 | */ | 90 | */ |
| 91 | void GetAppletManInfo(Service::Interface* self); | 91 | void GetAppletManInfo(Service::Interface* self); |
| 92 | 92 | ||
| 93 | /** | 93 | /** |
| 94 | * APT::IsRegistered service function. This returns whether the specified AppID is registered with NS yet. | 94 | * APT::IsRegistered service function. This returns whether the specified AppID is registered with NS yet. |
| @@ -100,14 +100,14 @@ void GetAppletManInfo(Service::Interface* self); | |||
| 100 | * Outputs: | 100 | * Outputs: |
| 101 | * 0 : Return header | 101 | * 0 : Return header |
| 102 | * 1 : Result of function, 0 on success, otherwise error code | 102 | * 1 : Result of function, 0 on success, otherwise error code |
| 103 | * 2 : Output, 0 = not registered, 1 = registered. | 103 | * 2 : Output, 0 = not registered, 1 = registered. |
| 104 | */ | 104 | */ |
| 105 | void IsRegistered(Service::Interface* self); | 105 | void IsRegistered(Service::Interface* self); |
| 106 | 106 | ||
| 107 | void InquireNotification(Service::Interface* self); | 107 | void InquireNotification(Service::Interface* self); |
| 108 | 108 | ||
| 109 | /** | 109 | /** |
| 110 | * APT::SendParameter service function. This sets the parameter data state. | 110 | * APT::SendParameter service function. This sets the parameter data state. |
| 111 | * Inputs: | 111 | * Inputs: |
| 112 | * 1 : Source AppID | 112 | * 1 : Source AppID |
| 113 | * 2 : Destination AppID | 113 | * 2 : Destination AppID |
diff --git a/src/core/hle/service/boss_p.h b/src/core/hle/service/boss_p.h index 71f1e7464..6fb51d57d 100644 --- a/src/core/hle/service/boss_p.h +++ b/src/core/hle/service/boss_p.h | |||
| @@ -14,7 +14,7 @@ namespace BOSS_P { | |||
| 14 | class Interface : public Service::Interface { | 14 | class Interface : public Service::Interface { |
| 15 | public: | 15 | public: |
| 16 | Interface(); | 16 | Interface(); |
| 17 | 17 | ||
| 18 | std::string GetPortName() const override { | 18 | std::string GetPortName() const override { |
| 19 | return "boss:P"; | 19 | return "boss:P"; |
| 20 | } | 20 | } |
diff --git a/src/core/hle/service/boss_u.h b/src/core/hle/service/boss_u.h index 2668f2dfd..89e77fe47 100644 --- a/src/core/hle/service/boss_u.h +++ b/src/core/hle/service/boss_u.h | |||
| @@ -14,7 +14,7 @@ namespace BOSS_U { | |||
| 14 | class Interface : public Service::Interface { | 14 | class Interface : public Service::Interface { |
| 15 | public: | 15 | public: |
| 16 | Interface(); | 16 | Interface(); |
| 17 | 17 | ||
| 18 | std::string GetPortName() const override { | 18 | std::string GetPortName() const override { |
| 19 | return "boss:U"; | 19 | return "boss:U"; |
| 20 | } | 20 | } |
diff --git a/src/core/hle/service/cam_u.cpp b/src/core/hle/service/cam_u.cpp index fcfd87715..ecda0dbdf 100644 --- a/src/core/hle/service/cam_u.cpp +++ b/src/core/hle/service/cam_u.cpp | |||
| @@ -19,5 +19,5 @@ namespace CAM_U { | |||
| 19 | Interface::Interface() { | 19 | Interface::Interface() { |
| 20 | //Register(FunctionTable); | 20 | //Register(FunctionTable); |
| 21 | } | 21 | } |
| 22 | 22 | ||
| 23 | } // namespace | 23 | } // namespace |
diff --git a/src/core/hle/service/cfg/cfg.cpp b/src/core/hle/service/cfg/cfg.cpp index d42682883..62ad90fdc 100644 --- a/src/core/hle/service/cfg/cfg.cpp +++ b/src/core/hle/service/cfg/cfg.cpp | |||
| @@ -315,11 +315,11 @@ void Init() { | |||
| 315 | AddService(new CFG_I_Interface); | 315 | AddService(new CFG_I_Interface); |
| 316 | AddService(new CFG_S_Interface); | 316 | AddService(new CFG_S_Interface); |
| 317 | AddService(new CFG_U_Interface); | 317 | AddService(new CFG_U_Interface); |
| 318 | 318 | ||
| 319 | // Open the SystemSaveData archive 0x00010017 | 319 | // Open the SystemSaveData archive 0x00010017 |
| 320 | FileSys::Path archive_path(cfg_system_savedata_id); | 320 | FileSys::Path archive_path(cfg_system_savedata_id); |
| 321 | auto archive_result = Service::FS::OpenArchive(Service::FS::ArchiveIdCode::SystemSaveData, archive_path); | 321 | auto archive_result = Service::FS::OpenArchive(Service::FS::ArchiveIdCode::SystemSaveData, archive_path); |
| 322 | 322 | ||
| 323 | // If the archive didn't exist, create the files inside | 323 | // If the archive didn't exist, create the files inside |
| 324 | if (archive_result.Code().description == ErrorDescription::FS_NotFormatted) { | 324 | if (archive_result.Code().description == ErrorDescription::FS_NotFormatted) { |
| 325 | // Format the archive to create the directories | 325 | // Format the archive to create the directories |
diff --git a/src/core/hle/service/fs/archive.cpp b/src/core/hle/service/fs/archive.cpp index 6d4a9c7c9..7cab68024 100644 --- a/src/core/hle/service/fs/archive.cpp +++ b/src/core/hle/service/fs/archive.cpp | |||
| @@ -254,7 +254,7 @@ ResultVal<ArchiveHandle> OpenArchive(ArchiveIdCode id_code, FileSys::Path& archi | |||
| 254 | 254 | ||
| 255 | CASCADE_RESULT(std::unique_ptr<ArchiveBackend> res, itr->second->Open(archive_path)); | 255 | CASCADE_RESULT(std::unique_ptr<ArchiveBackend> res, itr->second->Open(archive_path)); |
| 256 | 256 | ||
| 257 | // This should never even happen in the first place with 64-bit handles, | 257 | // This should never even happen in the first place with 64-bit handles, |
| 258 | while (handle_map.count(next_handle) != 0) { | 258 | while (handle_map.count(next_handle) != 0) { |
| 259 | ++next_handle; | 259 | ++next_handle; |
| 260 | } | 260 | } |
| @@ -488,7 +488,7 @@ void ArchiveInit() { | |||
| 488 | RegisterArchiveType(std::move(sdmc_factory), ArchiveIdCode::SDMC); | 488 | RegisterArchiveType(std::move(sdmc_factory), ArchiveIdCode::SDMC); |
| 489 | else | 489 | else |
| 490 | LOG_ERROR(Service_FS, "Can't instantiate SDMC archive with path %s", sdmc_directory.c_str()); | 490 | LOG_ERROR(Service_FS, "Can't instantiate SDMC archive with path %s", sdmc_directory.c_str()); |
| 491 | 491 | ||
| 492 | // Create the SaveData archive | 492 | // Create the SaveData archive |
| 493 | auto savedata_factory = Common::make_unique<FileSys::ArchiveFactory_SaveData>(sdmc_directory); | 493 | auto savedata_factory = Common::make_unique<FileSys::ArchiveFactory_SaveData>(sdmc_directory); |
| 494 | RegisterArchiveType(std::move(savedata_factory), ArchiveIdCode::SaveData); | 494 | RegisterArchiveType(std::move(savedata_factory), ArchiveIdCode::SaveData); |
| @@ -503,7 +503,7 @@ void ArchiveInit() { | |||
| 503 | if (sharedextsavedata_factory->Initialize()) | 503 | if (sharedextsavedata_factory->Initialize()) |
| 504 | RegisterArchiveType(std::move(sharedextsavedata_factory), ArchiveIdCode::SharedExtSaveData); | 504 | RegisterArchiveType(std::move(sharedextsavedata_factory), ArchiveIdCode::SharedExtSaveData); |
| 505 | else | 505 | else |
| 506 | LOG_ERROR(Service_FS, "Can't instantiate SharedExtSaveData archive with path %s", | 506 | LOG_ERROR(Service_FS, "Can't instantiate SharedExtSaveData archive with path %s", |
| 507 | sharedextsavedata_factory->GetMountPoint().c_str()); | 507 | sharedextsavedata_factory->GetMountPoint().c_str()); |
| 508 | 508 | ||
| 509 | // Create the SaveDataCheck archive, basically a small variation of the RomFS archive | 509 | // Create the SaveDataCheck archive, basically a small variation of the RomFS archive |
diff --git a/src/core/hle/service/fs/fs_user.cpp b/src/core/hle/service/fs/fs_user.cpp index b25c8941d..32db773bb 100644 --- a/src/core/hle/service/fs/fs_user.cpp +++ b/src/core/hle/service/fs/fs_user.cpp | |||
| @@ -434,7 +434,7 @@ static void IsSdmcWriteable(Service::Interface* self) { | |||
| 434 | } | 434 | } |
| 435 | 435 | ||
| 436 | /** | 436 | /** |
| 437 | * FS_User::FormatSaveData service function, | 437 | * FS_User::FormatSaveData service function, |
| 438 | * formats the SaveData specified by the input path. | 438 | * formats the SaveData specified by the input path. |
| 439 | * Inputs: | 439 | * Inputs: |
| 440 | * 0 : 0x084C0242 | 440 | * 0 : 0x084C0242 |
| @@ -520,7 +520,7 @@ static void CreateExtSaveData(Service::Interface* self) { | |||
| 520 | LOG_WARNING(Service_FS, "(STUBBED) savedata_high=%08X savedata_low=%08X cmd_buff[3]=%08X " | 520 | LOG_WARNING(Service_FS, "(STUBBED) savedata_high=%08X savedata_low=%08X cmd_buff[3]=%08X " |
| 521 | "cmd_buff[4]=%08X cmd_buff[5]=%08X cmd_buff[6]=%08X cmd_buff[7]=%08X cmd_buff[8]=%08X " | 521 | "cmd_buff[4]=%08X cmd_buff[5]=%08X cmd_buff[6]=%08X cmd_buff[7]=%08X cmd_buff[8]=%08X " |
| 522 | "cmd_buff[9]=%08X cmd_buff[10]=%08X cmd_buff[11]=%08X", save_high, save_low, | 522 | "cmd_buff[9]=%08X cmd_buff[10]=%08X cmd_buff[11]=%08X", save_high, save_low, |
| 523 | cmd_buff[3], cmd_buff[4], cmd_buff[5], cmd_buff[6], cmd_buff[7], cmd_buff[8], cmd_buff[9], | 523 | cmd_buff[3], cmd_buff[4], cmd_buff[5], cmd_buff[6], cmd_buff[7], cmd_buff[8], cmd_buff[9], |
| 524 | cmd_buff[10], cmd_buff[11]); | 524 | cmd_buff[10], cmd_buff[11]); |
| 525 | 525 | ||
| 526 | cmd_buff[1] = CreateExtSaveData(media_type, save_high, save_low).raw; | 526 | cmd_buff[1] = CreateExtSaveData(media_type, save_high, save_low).raw; |
| @@ -544,7 +544,7 @@ static void DeleteExtSaveData(Service::Interface* self) { | |||
| 544 | u32 save_high = cmd_buff[3]; | 544 | u32 save_high = cmd_buff[3]; |
| 545 | u32 unknown = cmd_buff[4]; // TODO(Subv): Figure out what this is | 545 | u32 unknown = cmd_buff[4]; // TODO(Subv): Figure out what this is |
| 546 | 546 | ||
| 547 | LOG_WARNING(Service_FS, "(STUBBED) save_low=%08X save_high=%08X media_type=%08X unknown=%08X", | 547 | LOG_WARNING(Service_FS, "(STUBBED) save_low=%08X save_high=%08X media_type=%08X unknown=%08X", |
| 548 | save_low, save_high, cmd_buff[1] & 0xFF, unknown); | 548 | save_low, save_high, cmd_buff[1] & 0xFF, unknown); |
| 549 | 549 | ||
| 550 | cmd_buff[1] = DeleteExtSaveData(media_type, save_high, save_low).raw; | 550 | cmd_buff[1] = DeleteExtSaveData(media_type, save_high, save_low).raw; |
diff --git a/src/core/hle/service/gsp_gpu.cpp b/src/core/hle/service/gsp_gpu.cpp index 4af168bfc..4b0b4229d 100644 --- a/src/core/hle/service/gsp_gpu.cpp +++ b/src/core/hle/service/gsp_gpu.cpp | |||
| @@ -167,7 +167,7 @@ static void WriteHWRegsWithMask(Service::Interface* self) { | |||
| 167 | u32* cmd_buff = Kernel::GetCommandBuffer(); | 167 | u32* cmd_buff = Kernel::GetCommandBuffer(); |
| 168 | u32 reg_addr = cmd_buff[1]; | 168 | u32 reg_addr = cmd_buff[1]; |
| 169 | u32 size = cmd_buff[2]; | 169 | u32 size = cmd_buff[2]; |
| 170 | 170 | ||
| 171 | u32* src_data = (u32*)Memory::GetPointer(cmd_buff[4]); | 171 | u32* src_data = (u32*)Memory::GetPointer(cmd_buff[4]); |
| 172 | u32* mask_data = (u32*)Memory::GetPointer(cmd_buff[6]); | 172 | u32* mask_data = (u32*)Memory::GetPointer(cmd_buff[6]); |
| 173 | 173 | ||
| @@ -208,21 +208,21 @@ static void SetBufferSwap(u32 screen_id, const FrameBufferInfo& info) { | |||
| 208 | PAddr phys_address_left = Memory::VirtualToPhysicalAddress(info.address_left); | 208 | PAddr phys_address_left = Memory::VirtualToPhysicalAddress(info.address_left); |
| 209 | PAddr phys_address_right = Memory::VirtualToPhysicalAddress(info.address_right); | 209 | PAddr phys_address_right = Memory::VirtualToPhysicalAddress(info.address_right); |
| 210 | if (info.active_fb == 0) { | 210 | if (info.active_fb == 0) { |
| 211 | WriteHWRegs(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].address_left1)), 4, | 211 | WriteHWRegs(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].address_left1)), 4, |
| 212 | &phys_address_left); | 212 | &phys_address_left); |
| 213 | WriteHWRegs(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].address_right1)), 4, | 213 | WriteHWRegs(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].address_right1)), 4, |
| 214 | &phys_address_right); | 214 | &phys_address_right); |
| 215 | } else { | 215 | } else { |
| 216 | WriteHWRegs(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].address_left2)), 4, | 216 | WriteHWRegs(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].address_left2)), 4, |
| 217 | &phys_address_left); | 217 | &phys_address_left); |
| 218 | WriteHWRegs(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].address_right2)), 4, | 218 | WriteHWRegs(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].address_right2)), 4, |
| 219 | &phys_address_right); | 219 | &phys_address_right); |
| 220 | } | 220 | } |
| 221 | WriteHWRegs(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].stride)), 4, | 221 | WriteHWRegs(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].stride)), 4, |
| 222 | &info.stride); | 222 | &info.stride); |
| 223 | WriteHWRegs(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].color_format)), 4, | 223 | WriteHWRegs(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].color_format)), 4, |
| 224 | &info.format); | 224 | &info.format); |
| 225 | WriteHWRegs(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].active_fb)), 4, | 225 | WriteHWRegs(base_address + 4 * static_cast<u32>(GPU_REG_INDEX(framebuffer_config[screen_id].active_fb)), 4, |
| 226 | &info.shown_fb); | 226 | &info.shown_fb); |
| 227 | } | 227 | } |
| 228 | 228 | ||
| @@ -374,7 +374,7 @@ static void ExecuteCommand(const Command& command, u32 thread_id) { | |||
| 374 | { | 374 | { |
| 375 | auto& params = command.set_command_list_last; | 375 | auto& params = command.set_command_list_last; |
| 376 | 376 | ||
| 377 | WriteGPURegister(static_cast<u32>(GPU_REG_INDEX(command_processor_config.address)), | 377 | WriteGPURegister(static_cast<u32>(GPU_REG_INDEX(command_processor_config.address)), |
| 378 | Memory::VirtualToPhysicalAddress(params.address) >> 3); | 378 | Memory::VirtualToPhysicalAddress(params.address) >> 3); |
| 379 | WriteGPURegister(static_cast<u32>(GPU_REG_INDEX(command_processor_config.size)), params.size); | 379 | WriteGPURegister(static_cast<u32>(GPU_REG_INDEX(command_processor_config.size)), params.size); |
| 380 | 380 | ||
| @@ -470,7 +470,7 @@ static void SetLcdForceBlack(Service::Interface* self) { | |||
| 470 | 470 | ||
| 471 | LCD::Write(HW::VADDR_LCD + 4 * LCD_REG_INDEX(color_fill_top), data.raw); // Top LCD | 471 | LCD::Write(HW::VADDR_LCD + 4 * LCD_REG_INDEX(color_fill_top), data.raw); // Top LCD |
| 472 | LCD::Write(HW::VADDR_LCD + 4 * LCD_REG_INDEX(color_fill_bottom), data.raw); // Bottom LCD | 472 | LCD::Write(HW::VADDR_LCD + 4 * LCD_REG_INDEX(color_fill_bottom), data.raw); // Bottom LCD |
| 473 | 473 | ||
| 474 | cmd_buff[1] = RESULT_SUCCESS.raw; | 474 | cmd_buff[1] = RESULT_SUCCESS.raw; |
| 475 | } | 475 | } |
| 476 | 476 | ||
| @@ -516,8 +516,8 @@ static void TriggerCmdReqQueue(Service::Interface* self) { | |||
| 516 | */ | 516 | */ |
| 517 | static void ImportDisplayCaptureInfo(Service::Interface* self) { | 517 | static void ImportDisplayCaptureInfo(Service::Interface* self) { |
| 518 | u32* cmd_buff = Kernel::GetCommandBuffer(); | 518 | u32* cmd_buff = Kernel::GetCommandBuffer(); |
| 519 | 519 | ||
| 520 | // TODO(Subv): We're always returning the framebuffer structures for thread_id = 0, | 520 | // TODO(Subv): We're always returning the framebuffer structures for thread_id = 0, |
| 521 | // because we only support a single running application at a time. | 521 | // because we only support a single running application at a time. |
| 522 | // This should always return the framebuffer data that is currently displayed on the screen. | 522 | // This should always return the framebuffer data that is currently displayed on the screen. |
| 523 | 523 | ||
diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp index feac53816..c7c1bb5ab 100644 --- a/src/core/hle/service/hid/hid.cpp +++ b/src/core/hle/service/hid/hid.cpp | |||
| @@ -106,7 +106,7 @@ void Update() { | |||
| 106 | mem->touch.index_reset_ticks_previous = mem->touch.index_reset_ticks; | 106 | mem->touch.index_reset_ticks_previous = mem->touch.index_reset_ticks; |
| 107 | mem->touch.index_reset_ticks = (s64)CoreTiming::GetTicks(); | 107 | mem->touch.index_reset_ticks = (s64)CoreTiming::GetTicks(); |
| 108 | } | 108 | } |
| 109 | 109 | ||
| 110 | // Signal both handles when there's an update to Pad or touch | 110 | // Signal both handles when there's an update to Pad or touch |
| 111 | event_pad_or_touch_1->Signal(); | 111 | event_pad_or_touch_1->Signal(); |
| 112 | event_pad_or_touch_2->Signal(); | 112 | event_pad_or_touch_2->Signal(); |
diff --git a/src/core/hle/service/hid/hid_spvr.cpp b/src/core/hle/service/hid/hid_spvr.cpp index 02db12efd..532931ae0 100644 --- a/src/core/hle/service/hid/hid_spvr.cpp +++ b/src/core/hle/service/hid/hid_spvr.cpp | |||
| @@ -25,6 +25,6 @@ const Interface::FunctionInfo FunctionTable[] = { | |||
| 25 | HID_SPVR_Interface::HID_SPVR_Interface() { | 25 | HID_SPVR_Interface::HID_SPVR_Interface() { |
| 26 | Register(FunctionTable); | 26 | Register(FunctionTable); |
| 27 | } | 27 | } |
| 28 | 28 | ||
| 29 | } // namespace HID | 29 | } // namespace HID |
| 30 | } // namespace Service | 30 | } // namespace Service |
diff --git a/src/core/hle/service/hid/hid_user.h b/src/core/hle/service/hid/hid_user.h index 0eeec2c25..baf7fed79 100644 --- a/src/core/hle/service/hid/hid_user.h +++ b/src/core/hle/service/hid/hid_user.h | |||
| @@ -11,7 +11,7 @@ | |||
| 11 | 11 | ||
| 12 | namespace Service { | 12 | namespace Service { |
| 13 | namespace HID { | 13 | namespace HID { |
| 14 | 14 | ||
| 15 | /** | 15 | /** |
| 16 | * HID service interface. | 16 | * HID service interface. |
| 17 | */ | 17 | */ |
diff --git a/src/core/hle/service/ptm/ptm.h b/src/core/hle/service/ptm/ptm.h index 493e6a11f..b690003cb 100644 --- a/src/core/hle/service/ptm/ptm.h +++ b/src/core/hle/service/ptm/ptm.h | |||
| @@ -20,15 +20,15 @@ enum class ChargeLevels : u32 { | |||
| 20 | CompletelyFull = 5, | 20 | CompletelyFull = 5, |
| 21 | }; | 21 | }; |
| 22 | 22 | ||
| 23 | /** | 23 | /** |
| 24 | * Represents the gamecoin file structure in the SharedExtData archive | 24 | * Represents the gamecoin file structure in the SharedExtData archive |
| 25 | * More information in 3dbrew (http://www.3dbrew.org/wiki/Extdata#Shared_Extdata_0xf000000b_gamecoin.dat) | 25 | * More information in 3dbrew (http://www.3dbrew.org/wiki/Extdata#Shared_Extdata_0xf000000b_gamecoin.dat) |
| 26 | */ | 26 | */ |
| 27 | struct GameCoin { | 27 | struct GameCoin { |
| 28 | u32 magic; ///< Magic number: 0x4F00 | 28 | u32 magic; ///< Magic number: 0x4F00 |
| 29 | u16 total_coins; ///< Total Play Coins | 29 | u16 total_coins; ///< Total Play Coins |
| 30 | u16 total_coins_on_date; ///< Total Play Coins obtained on the date stored below. | 30 | u16 total_coins_on_date; ///< Total Play Coins obtained on the date stored below. |
| 31 | u32 step_count; ///< Total step count at the time a new Play Coin was obtained. | 31 | u32 step_count; ///< Total step count at the time a new Play Coin was obtained. |
| 32 | u32 last_step_count; ///< Step count for the day the last Play Coin was obtained | 32 | u32 last_step_count; ///< Step count for the day the last Play Coin was obtained |
| 33 | u16 year; | 33 | u16 year; |
| 34 | u8 month; | 34 | u8 month; |
diff --git a/src/core/hle/service/ptm/ptm_play.cpp b/src/core/hle/service/ptm/ptm_play.cpp index 48e68a3d8..7bb990193 100644 --- a/src/core/hle/service/ptm/ptm_play.cpp +++ b/src/core/hle/service/ptm/ptm_play.cpp | |||
| @@ -18,6 +18,6 @@ const Interface::FunctionInfo FunctionTable[] = { | |||
| 18 | PTM_Play_Interface::PTM_Play_Interface() { | 18 | PTM_Play_Interface::PTM_Play_Interface() { |
| 19 | Register(FunctionTable); | 19 | Register(FunctionTable); |
| 20 | } | 20 | } |
| 21 | 21 | ||
| 22 | } // namespace PTM | 22 | } // namespace PTM |
| 23 | } // namespace Service \ No newline at end of file | 23 | } // namespace Service \ No newline at end of file |
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp index 64185c62e..dc667500c 100644 --- a/src/core/hle/service/service.cpp +++ b/src/core/hle/service/service.cpp | |||
| @@ -52,7 +52,7 @@ std::unordered_map<std::string, Kernel::SharedPtr<Interface>> g_kernel_named_por | |||
| 52 | std::unordered_map<std::string, Kernel::SharedPtr<Interface>> g_srv_services; | 52 | std::unordered_map<std::string, Kernel::SharedPtr<Interface>> g_srv_services; |
| 53 | 53 | ||
| 54 | /** | 54 | /** |
| 55 | * Creates a function string for logging, complete with the name (or header code, depending | 55 | * Creates a function string for logging, complete with the name (or header code, depending |
| 56 | * on what's passed in) the port name, and all the cmd_buff arguments. | 56 | * on what's passed in) the port name, and all the cmd_buff arguments. |
| 57 | */ | 57 | */ |
| 58 | static std::string MakeFunctionString(const char* name, const char* port_name, const u32* cmd_buff) { | 58 | static std::string MakeFunctionString(const char* name, const char* port_name, const u32* cmd_buff) { |
diff --git a/src/core/hle/service/soc_u.cpp b/src/core/hle/service/soc_u.cpp index 39b8d65fd..1e0f5df9b 100644 --- a/src/core/hle/service/soc_u.cpp +++ b/src/core/hle/service/soc_u.cpp | |||
| @@ -139,7 +139,7 @@ static int TranslateError(int error) { | |||
| 139 | auto found = error_map.find(error); | 139 | auto found = error_map.find(error); |
| 140 | if (found != error_map.end()) | 140 | if (found != error_map.end()) |
| 141 | return -found->second; | 141 | return -found->second; |
| 142 | 142 | ||
| 143 | return error; | 143 | return error; |
| 144 | } | 144 | } |
| 145 | 145 | ||
| @@ -346,7 +346,7 @@ static void Bind(Service::Interface* self) { | |||
| 346 | sockaddr sock_addr = CTRSockAddr::ToPlatform(*ctr_sock_addr); | 346 | sockaddr sock_addr = CTRSockAddr::ToPlatform(*ctr_sock_addr); |
| 347 | 347 | ||
| 348 | int res = ::bind(socket_handle, &sock_addr, std::max<u32>(sizeof(sock_addr), len)); | 348 | int res = ::bind(socket_handle, &sock_addr, std::max<u32>(sizeof(sock_addr), len)); |
| 349 | 349 | ||
| 350 | int result = 0; | 350 | int result = 0; |
| 351 | if (res != 0) | 351 | if (res != 0) |
| 352 | result = TranslateError(GET_ERRNO); | 352 | result = TranslateError(GET_ERRNO); |
| @@ -360,14 +360,14 @@ static void Fcntl(Service::Interface* self) { | |||
| 360 | u32 socket_handle = cmd_buffer[1]; | 360 | u32 socket_handle = cmd_buffer[1]; |
| 361 | u32 ctr_cmd = cmd_buffer[2]; | 361 | u32 ctr_cmd = cmd_buffer[2]; |
| 362 | u32 ctr_arg = cmd_buffer[3]; | 362 | u32 ctr_arg = cmd_buffer[3]; |
| 363 | 363 | ||
| 364 | int result = 0; | 364 | int result = 0; |
| 365 | u32 posix_ret = 0; // TODO: Check what hardware returns for F_SETFL (unspecified by POSIX) | 365 | u32 posix_ret = 0; // TODO: Check what hardware returns for F_SETFL (unspecified by POSIX) |
| 366 | SCOPE_EXIT({ | 366 | SCOPE_EXIT({ |
| 367 | cmd_buffer[1] = result; | 367 | cmd_buffer[1] = result; |
| 368 | cmd_buffer[2] = posix_ret; | 368 | cmd_buffer[2] = posix_ret; |
| 369 | }); | 369 | }); |
| 370 | 370 | ||
| 371 | if (ctr_cmd == 3) { // F_GETFL | 371 | if (ctr_cmd == 3) { // F_GETFL |
| 372 | #if EMU_PLATFORM == PLATFORM_WINDOWS | 372 | #if EMU_PLATFORM == PLATFORM_WINDOWS |
| 373 | posix_ret = 0; | 373 | posix_ret = 0; |
| @@ -404,11 +404,11 @@ static void Fcntl(Service::Interface* self) { | |||
| 404 | posix_ret = -1; | 404 | posix_ret = -1; |
| 405 | return; | 405 | return; |
| 406 | } | 406 | } |
| 407 | 407 | ||
| 408 | flags &= ~O_NONBLOCK; | 408 | flags &= ~O_NONBLOCK; |
| 409 | if (ctr_arg & 4) // O_NONBLOCK | 409 | if (ctr_arg & 4) // O_NONBLOCK |
| 410 | flags |= O_NONBLOCK; | 410 | flags |= O_NONBLOCK; |
| 411 | 411 | ||
| 412 | int ret = ::fcntl(socket_handle, F_SETFL, flags); | 412 | int ret = ::fcntl(socket_handle, F_SETFL, flags); |
| 413 | if (ret == SOCKET_ERROR_VALUE) { | 413 | if (ret == SOCKET_ERROR_VALUE) { |
| 414 | result = TranslateError(GET_ERRNO); | 414 | result = TranslateError(GET_ERRNO); |
| @@ -439,8 +439,8 @@ static void Listen(Service::Interface* self) { | |||
| 439 | } | 439 | } |
| 440 | 440 | ||
| 441 | static void Accept(Service::Interface* self) { | 441 | static void Accept(Service::Interface* self) { |
| 442 | // TODO(Subv): Calling this function on a blocking socket will block the emu thread, | 442 | // TODO(Subv): Calling this function on a blocking socket will block the emu thread, |
| 443 | // preventing graceful shutdown when closing the emulator, this can be fixed by always | 443 | // preventing graceful shutdown when closing the emulator, this can be fixed by always |
| 444 | // performing nonblocking operations and spinlock until the data is available | 444 | // performing nonblocking operations and spinlock until the data is available |
| 445 | u32* cmd_buffer = Kernel::GetCommandBuffer(); | 445 | u32* cmd_buffer = Kernel::GetCommandBuffer(); |
| 446 | u32 socket_handle = cmd_buffer[1]; | 446 | u32 socket_handle = cmd_buffer[1]; |
| @@ -448,7 +448,7 @@ static void Accept(Service::Interface* self) { | |||
| 448 | sockaddr addr; | 448 | sockaddr addr; |
| 449 | socklen_t addr_len = sizeof(addr); | 449 | socklen_t addr_len = sizeof(addr); |
| 450 | u32 ret = static_cast<u32>(::accept(socket_handle, &addr, &addr_len)); | 450 | u32 ret = static_cast<u32>(::accept(socket_handle, &addr, &addr_len)); |
| 451 | 451 | ||
| 452 | if ((s32)ret != SOCKET_ERROR_VALUE) | 452 | if ((s32)ret != SOCKET_ERROR_VALUE) |
| 453 | open_sockets[ret] = { ret, true }; | 453 | open_sockets[ret] = { ret, true }; |
| 454 | 454 | ||
| @@ -525,8 +525,8 @@ static void SendTo(Service::Interface* self) { | |||
| 525 | } | 525 | } |
| 526 | 526 | ||
| 527 | static void RecvFrom(Service::Interface* self) { | 527 | static void RecvFrom(Service::Interface* self) { |
| 528 | // TODO(Subv): Calling this function on a blocking socket will block the emu thread, | 528 | // TODO(Subv): Calling this function on a blocking socket will block the emu thread, |
| 529 | // preventing graceful shutdown when closing the emulator, this can be fixed by always | 529 | // preventing graceful shutdown when closing the emulator, this can be fixed by always |
| 530 | // performing nonblocking operations and spinlock until the data is available | 530 | // performing nonblocking operations and spinlock until the data is available |
| 531 | u32* cmd_buffer = Kernel::GetCommandBuffer(); | 531 | u32* cmd_buffer = Kernel::GetCommandBuffer(); |
| 532 | u32 socket_handle = cmd_buffer[1]; | 532 | u32 socket_handle = cmd_buffer[1]; |
| @@ -568,7 +568,7 @@ static void Poll(Service::Interface* self) { | |||
| 568 | pollfd* platform_pollfd = new pollfd[nfds]; | 568 | pollfd* platform_pollfd = new pollfd[nfds]; |
| 569 | for (unsigned current_fds = 0; current_fds < nfds; ++current_fds) | 569 | for (unsigned current_fds = 0; current_fds < nfds; ++current_fds) |
| 570 | platform_pollfd[current_fds] = CTRPollFD::ToPlatform(input_fds[current_fds]); | 570 | platform_pollfd[current_fds] = CTRPollFD::ToPlatform(input_fds[current_fds]); |
| 571 | 571 | ||
| 572 | int ret = ::poll(platform_pollfd, nfds, timeout); | 572 | int ret = ::poll(platform_pollfd, nfds, timeout); |
| 573 | 573 | ||
| 574 | // Now update the output pollfd structure | 574 | // Now update the output pollfd structure |
| @@ -630,7 +630,7 @@ static void GetPeerName(Service::Interface* self) { | |||
| 630 | socklen_t len = cmd_buffer[2]; | 630 | socklen_t len = cmd_buffer[2]; |
| 631 | 631 | ||
| 632 | CTRSockAddr* ctr_dest_addr = reinterpret_cast<CTRSockAddr*>(Memory::GetPointer(cmd_buffer[0x104 >> 2])); | 632 | CTRSockAddr* ctr_dest_addr = reinterpret_cast<CTRSockAddr*>(Memory::GetPointer(cmd_buffer[0x104 >> 2])); |
| 633 | 633 | ||
| 634 | sockaddr dest_addr; | 634 | sockaddr dest_addr; |
| 635 | socklen_t dest_addr_len = sizeof(dest_addr); | 635 | socklen_t dest_addr_len = sizeof(dest_addr); |
| 636 | int ret = ::getpeername(socket_handle, &dest_addr, &dest_addr_len); | 636 | int ret = ::getpeername(socket_handle, &dest_addr, &dest_addr_len); |
| @@ -651,8 +651,8 @@ static void GetPeerName(Service::Interface* self) { | |||
| 651 | } | 651 | } |
| 652 | 652 | ||
| 653 | static void Connect(Service::Interface* self) { | 653 | static void Connect(Service::Interface* self) { |
| 654 | // TODO(Subv): Calling this function on a blocking socket will block the emu thread, | 654 | // TODO(Subv): Calling this function on a blocking socket will block the emu thread, |
| 655 | // preventing graceful shutdown when closing the emulator, this can be fixed by always | 655 | // preventing graceful shutdown when closing the emulator, this can be fixed by always |
| 656 | // performing nonblocking operations and spinlock until the data is available | 656 | // performing nonblocking operations and spinlock until the data is available |
| 657 | u32* cmd_buffer = Kernel::GetCommandBuffer(); | 657 | u32* cmd_buffer = Kernel::GetCommandBuffer(); |
| 658 | u32 socket_handle = cmd_buffer[1]; | 658 | u32 socket_handle = cmd_buffer[1]; |
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp index ca3ff3328..d1555c753 100644 --- a/src/core/hle/svc.cpp +++ b/src/core/hle/svc.cpp | |||
| @@ -228,7 +228,7 @@ static ResultCode WaitSynchronizationN(s32* out, Handle* handles, s32 handle_cou | |||
| 228 | // Actually wait the current thread on each object if we decided to wait... | 228 | // Actually wait the current thread on each object if we decided to wait... |
| 229 | std::vector<SharedPtr<Kernel::WaitObject>> wait_objects; | 229 | std::vector<SharedPtr<Kernel::WaitObject>> wait_objects; |
| 230 | wait_objects.reserve(handle_count); | 230 | wait_objects.reserve(handle_count); |
| 231 | 231 | ||
| 232 | for (int i = 0; i < handle_count; ++i) { | 232 | for (int i = 0; i < handle_count; ++i) { |
| 233 | auto object = Kernel::g_handle_table.GetWaitObject(handles[i]); | 233 | auto object = Kernel::g_handle_table.GetWaitObject(handles[i]); |
| 234 | object->AddWaitingThread(Kernel::GetCurrentThread()); | 234 | object->AddWaitingThread(Kernel::GetCurrentThread()); |
| @@ -475,7 +475,7 @@ static ResultCode GetProcessIdOfThread(u32* process_id, Handle thread_handle) { | |||
| 475 | return ERR_INVALID_HANDLE; | 475 | return ERR_INVALID_HANDLE; |
| 476 | 476 | ||
| 477 | const SharedPtr<Kernel::Process> process = thread->owner_process; | 477 | const SharedPtr<Kernel::Process> process = thread->owner_process; |
| 478 | 478 | ||
| 479 | ASSERT_MSG(process != nullptr, "Invalid parent process for thread=0x%08X", thread_handle); | 479 | ASSERT_MSG(process != nullptr, "Invalid parent process for thread=0x%08X", thread_handle); |
| 480 | 480 | ||
| 481 | *process_id = process->process_id; | 481 | *process_id = process->process_id; |
diff --git a/src/core/hw/gpu.cpp b/src/core/hw/gpu.cpp index ddc5d647e..ed607646e 100644 --- a/src/core/hw/gpu.cpp +++ b/src/core/hw/gpu.cpp | |||
| @@ -140,7 +140,7 @@ inline void Write(u32 addr, const T data) { | |||
| 140 | // Raw copies do not perform color conversion nor tiled->linear / linear->tiled conversions | 140 | // Raw copies do not perform color conversion nor tiled->linear / linear->tiled conversions |
| 141 | // TODO(Subv): Verify if raw copies perform scaling | 141 | // TODO(Subv): Verify if raw copies perform scaling |
| 142 | memcpy(dst_pointer, src_pointer, output_size); | 142 | memcpy(dst_pointer, src_pointer, output_size); |
| 143 | 143 | ||
| 144 | LOG_TRACE(HW_GPU, "DisplayTriggerTransfer: 0x%08x bytes from 0x%08x(%ux%u)-> 0x%08x(%ux%u), output format: %x, flags 0x%08X, Raw copy", | 144 | LOG_TRACE(HW_GPU, "DisplayTriggerTransfer: 0x%08x bytes from 0x%08x(%ux%u)-> 0x%08x(%ux%u), output format: %x, flags 0x%08X, Raw copy", |
| 145 | output_size, | 145 | output_size, |
| 146 | config.GetPhysicalInputAddress(), config.input_width.Value(), config.input_height.Value(), | 146 | config.GetPhysicalInputAddress(), config.input_width.Value(), config.input_height.Value(), |
| @@ -159,14 +159,14 @@ inline void Write(u32 addr, const T data) { | |||
| 159 | for (u32 x = 0; x < output_width; ++x) { | 159 | for (u32 x = 0; x < output_width; ++x) { |
| 160 | Math::Vec4<u8> src_color = { 0, 0, 0, 0 }; | 160 | Math::Vec4<u8> src_color = { 0, 0, 0, 0 }; |
| 161 | 161 | ||
| 162 | // Calculate the [x,y] position of the input image | 162 | // Calculate the [x,y] position of the input image |
| 163 | // based on the current output position and the scale | 163 | // based on the current output position and the scale |
| 164 | u32 input_x = x * horizontal_scale; | 164 | u32 input_x = x * horizontal_scale; |
| 165 | u32 input_y = y * vertical_scale; | 165 | u32 input_y = y * vertical_scale; |
| 166 | 166 | ||
| 167 | if (config.flip_vertically) { | 167 | if (config.flip_vertically) { |
| 168 | // Flip the y value of the output data, | 168 | // Flip the y value of the output data, |
| 169 | // we do this after calculating the [x,y] position of the input image | 169 | // we do this after calculating the [x,y] position of the input image |
| 170 | // to account for the scaling options. | 170 | // to account for the scaling options. |
| 171 | y = output_height - y - 1; | 171 | y = output_height - y - 1; |
| 172 | } | 172 | } |
| @@ -302,7 +302,7 @@ static void VBlankCallback(u64 userdata, int cycles_late) { | |||
| 302 | // - If frameskip == 0 (disabled), always swap buffers | 302 | // - If frameskip == 0 (disabled), always swap buffers |
| 303 | // - If frameskip == 1, swap buffers every other frame (starting from the first frame) | 303 | // - If frameskip == 1, swap buffers every other frame (starting from the first frame) |
| 304 | // - If frameskip > 1, swap buffers every frameskip^n frames (starting from the second frame) | 304 | // - If frameskip > 1, swap buffers every frameskip^n frames (starting from the second frame) |
| 305 | if ((((Settings::values.frame_skip != 1) ^ last_skip_frame) && last_skip_frame != g_skip_frame) || | 305 | if ((((Settings::values.frame_skip != 1) ^ last_skip_frame) && last_skip_frame != g_skip_frame) || |
| 306 | Settings::values.frame_skip == 0) { | 306 | Settings::values.frame_skip == 0) { |
| 307 | VideoCore::g_renderer->SwapBuffers(); | 307 | VideoCore::g_renderer->SwapBuffers(); |
| 308 | } | 308 | } |
diff --git a/src/core/hw/lcd.cpp b/src/core/hw/lcd.cpp index 09134c95b..963c8d981 100644 --- a/src/core/hw/lcd.cpp +++ b/src/core/hw/lcd.cpp | |||
| @@ -66,5 +66,5 @@ void Init() { | |||
| 66 | void Shutdown() { | 66 | void Shutdown() { |
| 67 | LOG_DEBUG(HW_LCD, "shutdown OK"); | 67 | LOG_DEBUG(HW_LCD, "shutdown OK"); |
| 68 | } | 68 | } |
| 69 | 69 | ||
| 70 | } // namespace | 70 | } // namespace |
diff --git a/src/core/hw/lcd.h b/src/core/hw/lcd.h index fb14c3b21..8631eb201 100644 --- a/src/core/hw/lcd.h +++ b/src/core/hw/lcd.h | |||
| @@ -85,5 +85,5 @@ void Init(); | |||
| 85 | 85 | ||
| 86 | /// Shutdown hardware | 86 | /// Shutdown hardware |
| 87 | void Shutdown(); | 87 | void Shutdown(); |
| 88 | 88 | ||
| 89 | } // namespace | 89 | } // namespace |
diff --git a/src/core/loader/3dsx.cpp b/src/core/loader/3dsx.cpp index ad5e929ce..14aeebebb 100644 --- a/src/core/loader/3dsx.cpp +++ b/src/core/loader/3dsx.cpp | |||
| @@ -234,7 +234,7 @@ ResultStatus AppLoader_THREEDSX::Load() { | |||
| 234 | Kernel::g_current_process = Kernel::Process::Create(filename, 0); | 234 | Kernel::g_current_process = Kernel::Process::Create(filename, 0); |
| 235 | Kernel::g_current_process->svc_access_mask.set(); | 235 | Kernel::g_current_process->svc_access_mask.set(); |
| 236 | Kernel::g_current_process->address_mappings = default_address_mappings; | 236 | Kernel::g_current_process->address_mappings = default_address_mappings; |
| 237 | 237 | ||
| 238 | // Attach the default resource limit (APPLICATION) to the process | 238 | // Attach the default resource limit (APPLICATION) to the process |
| 239 | Kernel::g_current_process->resource_limit = Kernel::ResourceLimit::GetForCategory(Kernel::ResourceLimitCategory::APPLICATION); | 239 | Kernel::g_current_process->resource_limit = Kernel::ResourceLimit::GetForCategory(Kernel::ResourceLimitCategory::APPLICATION); |
| 240 | 240 | ||
diff --git a/src/core/memory.h b/src/core/memory.h index 2d225801b..0b8ff9ec4 100644 --- a/src/core/memory.h +++ b/src/core/memory.h | |||
| @@ -97,7 +97,7 @@ enum : VAddr { | |||
| 97 | SHARED_PAGE_VADDR_END = SHARED_PAGE_VADDR + SHARED_PAGE_SIZE, | 97 | SHARED_PAGE_VADDR_END = SHARED_PAGE_VADDR + SHARED_PAGE_SIZE, |
| 98 | 98 | ||
| 99 | // TODO(yuriks): The size of this area is dynamic, the kernel grows | 99 | // TODO(yuriks): The size of this area is dynamic, the kernel grows |
| 100 | // it as more and more threads are created. For now we'll just use a | 100 | // it as more and more threads are created. For now we'll just use a |
| 101 | // hardcoded value. | 101 | // hardcoded value. |
| 102 | /// Area where TLS (Thread-Local Storage) buffers are allocated. | 102 | /// Area where TLS (Thread-Local Storage) buffers are allocated. |
| 103 | TLS_AREA_VADDR = 0x1FF82000, | 103 | TLS_AREA_VADDR = 0x1FF82000, |
diff --git a/src/video_core/command_processor.cpp b/src/video_core/command_processor.cpp index 100d8c7c1..29ba6b769 100644 --- a/src/video_core/command_processor.cpp +++ b/src/video_core/command_processor.cpp | |||
| @@ -136,7 +136,7 @@ static inline void WritePicaReg(u32 id, u32 value, u32 mask) { | |||
| 136 | input.attr[i][0].ToFloat32(), input.attr[i][1].ToFloat32(), | 136 | input.attr[i][0].ToFloat32(), input.attr[i][1].ToFloat32(), |
| 137 | input.attr[i][2].ToFloat32(), input.attr[i][3].ToFloat32()); | 137 | input.attr[i][2].ToFloat32(), input.attr[i][3].ToFloat32()); |
| 138 | } | 138 | } |
| 139 | 139 | ||
| 140 | // Load per-vertex data from the loader arrays | 140 | // Load per-vertex data from the loader arrays |
| 141 | for (unsigned int comp = 0; comp < vertex_attribute_elements[i]; ++comp) { | 141 | for (unsigned int comp = 0; comp < vertex_attribute_elements[i]; ++comp) { |
| 142 | const u8* srcdata = Memory::GetPhysicalPointer(vertex_attribute_sources[i] + vertex_attribute_strides[i] * vertex + comp * vertex_attribute_element_size[i]); | 142 | const u8* srcdata = Memory::GetPhysicalPointer(vertex_attribute_sources[i] + vertex_attribute_strides[i] * vertex + comp * vertex_attribute_element_size[i]); |
| @@ -193,7 +193,7 @@ static inline void WritePicaReg(u32 id, u32 value, u32 mask) { | |||
| 193 | const Pica::VertexShader::OutputVertex& v2) { | 193 | const Pica::VertexShader::OutputVertex& v2) { |
| 194 | VideoCore::g_renderer->hw_rasterizer->AddTriangle(v0, v1, v2); | 194 | VideoCore::g_renderer->hw_rasterizer->AddTriangle(v0, v1, v2); |
| 195 | }; | 195 | }; |
| 196 | 196 | ||
| 197 | primitive_assembler.SubmitVertex(output, AddHWTriangle); | 197 | primitive_assembler.SubmitVertex(output, AddHWTriangle); |
| 198 | } else { | 198 | } else { |
| 199 | // Send to triangle clipper | 199 | // Send to triangle clipper |
| @@ -282,7 +282,7 @@ static inline void WritePicaReg(u32 id, u32 value, u32 mask) { | |||
| 282 | } | 282 | } |
| 283 | break; | 283 | break; |
| 284 | } | 284 | } |
| 285 | 285 | ||
| 286 | // Load default vertex input attributes | 286 | // Load default vertex input attributes |
| 287 | case PICA_REG_INDEX_WORKAROUND(vs_default_attributes_setup.set_value[0], 0x233): | 287 | case PICA_REG_INDEX_WORKAROUND(vs_default_attributes_setup.set_value[0], 0x233): |
| 288 | case PICA_REG_INDEX_WORKAROUND(vs_default_attributes_setup.set_value[1], 0x234): | 288 | case PICA_REG_INDEX_WORKAROUND(vs_default_attributes_setup.set_value[1], 0x234): |
| @@ -306,7 +306,7 @@ static inline void WritePicaReg(u32 id, u32 value, u32 mask) { | |||
| 306 | } | 306 | } |
| 307 | 307 | ||
| 308 | Math::Vec4<float24>& attribute = g_state.vs.default_attributes[setup.index]; | 308 | Math::Vec4<float24>& attribute = g_state.vs.default_attributes[setup.index]; |
| 309 | 309 | ||
| 310 | // NOTE: The destination component order indeed is "backwards" | 310 | // NOTE: The destination component order indeed is "backwards" |
| 311 | attribute.w = float24::FromRawFloat24(default_attr_write_buffer[0] >> 8); | 311 | attribute.w = float24::FromRawFloat24(default_attr_write_buffer[0] >> 8); |
| 312 | attribute.z = float24::FromRawFloat24(((default_attr_write_buffer[0] & 0xFF) << 16) | ((default_attr_write_buffer[1] >> 16) & 0xFFFF)); | 312 | attribute.z = float24::FromRawFloat24(((default_attr_write_buffer[0] & 0xFF) << 16) | ((default_attr_write_buffer[1] >> 16) & 0xFFFF)); |
diff --git a/src/video_core/debug_utils/debug_utils.cpp b/src/video_core/debug_utils/debug_utils.cpp index 7987b922c..b92cd1a7e 100644 --- a/src/video_core/debug_utils/debug_utils.cpp +++ b/src/video_core/debug_utils/debug_utils.cpp | |||
| @@ -319,7 +319,7 @@ const Math::Vec4<u8> LookupTexture(const u8* source, int x, int y, const Texture | |||
| 319 | // TODO(neobrain): Fix code design to unify vertical block offsets! | 319 | // TODO(neobrain): Fix code design to unify vertical block offsets! |
| 320 | source += coarse_y * info.stride; | 320 | source += coarse_y * info.stride; |
| 321 | } | 321 | } |
| 322 | 322 | ||
| 323 | // TODO: Assert that width/height are multiples of block dimensions | 323 | // TODO: Assert that width/height are multiples of block dimensions |
| 324 | 324 | ||
| 325 | switch (info.format) { | 325 | switch (info.format) { |
diff --git a/src/video_core/math.h b/src/video_core/math.h index f9a822658..4928c9bf2 100644 --- a/src/video_core/math.h +++ b/src/video_core/math.h | |||
| @@ -461,7 +461,7 @@ public: | |||
| 461 | // e.g. Vec2 uv() { return Vec2(x,y); } | 461 | // e.g. Vec2 uv() { return Vec2(x,y); } |
| 462 | 462 | ||
| 463 | // _DEFINE_SWIZZLER2 defines a single such function | 463 | // _DEFINE_SWIZZLER2 defines a single such function |
| 464 | // DEFINE_SWIZZLER2_COMP1 defines one-component functions for all component names (x<->r) | 464 | // DEFINE_SWIZZLER2_COMP1 defines one-component functions for all component names (x<->r) |
| 465 | // DEFINE_SWIZZLER2_COMP2 defines two component functions for all component names (x<->r) and permutations (xy<->yx) | 465 | // DEFINE_SWIZZLER2_COMP2 defines two component functions for all component names (x<->r) and permutations (xy<->yx) |
| 466 | #define _DEFINE_SWIZZLER2(a, b, name) const Vec2<T> name() const { return Vec2<T>(a, b); } | 466 | #define _DEFINE_SWIZZLER2(a, b, name) const Vec2<T> name() const { return Vec2<T>(a, b); } |
| 467 | #define DEFINE_SWIZZLER2_COMP1(a, a2) \ | 467 | #define DEFINE_SWIZZLER2_COMP1(a, a2) \ |
diff --git a/src/video_core/pica.h b/src/video_core/pica.h index b67dce1a9..6ebeb08f7 100644 --- a/src/video_core/pica.h +++ b/src/video_core/pica.h | |||
| @@ -16,7 +16,7 @@ | |||
| 16 | #include "common/common_types.h" | 16 | #include "common/common_types.h" |
| 17 | #include "common/logging/log.h" | 17 | #include "common/logging/log.h" |
| 18 | 18 | ||
| 19 | #include "math.h" | 19 | #include "math.h" |
| 20 | 20 | ||
| 21 | namespace Pica { | 21 | namespace Pica { |
| 22 | 22 | ||
| @@ -337,7 +337,7 @@ struct Regs { | |||
| 337 | return (stage_index < 4) && (update_mask_a & (1 << stage_index)); | 337 | return (stage_index < 4) && (update_mask_a & (1 << stage_index)); |
| 338 | } | 338 | } |
| 339 | } tev_combiner_buffer_input; | 339 | } tev_combiner_buffer_input; |
| 340 | 340 | ||
| 341 | INSERT_PADDING_WORDS(0xf); | 341 | INSERT_PADDING_WORDS(0xf); |
| 342 | TevStageConfig tev_stage4; | 342 | TevStageConfig tev_stage4; |
| 343 | INSERT_PADDING_WORDS(0x3); | 343 | INSERT_PADDING_WORDS(0x3); |
| @@ -703,11 +703,11 @@ struct Regs { | |||
| 703 | struct { | 703 | struct { |
| 704 | // Index of the current default attribute | 704 | // Index of the current default attribute |
| 705 | u32 index; | 705 | u32 index; |
| 706 | 706 | ||
| 707 | // Writing to these registers sets the "current" default attribute. | 707 | // Writing to these registers sets the "current" default attribute. |
| 708 | u32 set_value[3]; | 708 | u32 set_value[3]; |
| 709 | } vs_default_attributes_setup; | 709 | } vs_default_attributes_setup; |
| 710 | 710 | ||
| 711 | INSERT_PADDING_WORDS(0x28); | 711 | INSERT_PADDING_WORDS(0x28); |
| 712 | 712 | ||
| 713 | enum class TriangleTopology : u32 { | 713 | enum class TriangleTopology : u32 { |
diff --git a/src/video_core/rasterizer.cpp b/src/video_core/rasterizer.cpp index 767ff4205..6df3a74f2 100644 --- a/src/video_core/rasterizer.cpp +++ b/src/video_core/rasterizer.cpp | |||
| @@ -104,7 +104,7 @@ static u32 GetDepth(int x, int y) { | |||
| 104 | u8* depth_buffer = Memory::GetPhysicalPointer(addr); | 104 | u8* depth_buffer = Memory::GetPhysicalPointer(addr); |
| 105 | 105 | ||
| 106 | y = framebuffer.height - y; | 106 | y = framebuffer.height - y; |
| 107 | 107 | ||
| 108 | const u32 coarse_y = y & ~7; | 108 | const u32 coarse_y = y & ~7; |
| 109 | u32 bytes_per_pixel = Regs::BytesPerDepthPixel(framebuffer.depth_format); | 109 | u32 bytes_per_pixel = Regs::BytesPerDepthPixel(framebuffer.depth_format); |
| 110 | u32 stride = framebuffer.width * bytes_per_pixel; | 110 | u32 stride = framebuffer.width * bytes_per_pixel; |
diff --git a/src/video_core/renderer_opengl/generated/gl_3_2_core.c b/src/video_core/renderer_opengl/generated/gl_3_2_core.c index ef29972d7..95fd29c0a 100644 --- a/src/video_core/renderer_opengl/generated/gl_3_2_core.c +++ b/src/video_core/renderer_opengl/generated/gl_3_2_core.c | |||
| @@ -62,9 +62,9 @@ static int TestPointer(const PROC pTest) | |||
| 62 | ptrdiff_t iTest; | 62 | ptrdiff_t iTest; |
| 63 | if(!pTest) return 0; | 63 | if(!pTest) return 0; |
| 64 | iTest = (ptrdiff_t)pTest; | 64 | iTest = (ptrdiff_t)pTest; |
| 65 | 65 | ||
| 66 | if(iTest == 1 || iTest == 2 || iTest == 3 || iTest == -1) return 0; | 66 | if(iTest == 1 || iTest == 2 || iTest == 3 || iTest == -1) return 0; |
| 67 | 67 | ||
| 68 | return 1; | 68 | return 1; |
| 69 | } | 69 | } |
| 70 | 70 | ||
| @@ -79,7 +79,7 @@ static PROC WinGetProcAddress(const char *name) | |||
| 79 | glMod = GetModuleHandleA("OpenGL32.dll"); | 79 | glMod = GetModuleHandleA("OpenGL32.dll"); |
| 80 | return (PROC)GetProcAddress(glMod, (LPCSTR)name); | 80 | return (PROC)GetProcAddress(glMod, (LPCSTR)name); |
| 81 | } | 81 | } |
| 82 | 82 | ||
| 83 | #define IntGetProcAddress(name) WinGetProcAddress(name) | 83 | #define IntGetProcAddress(name) WinGetProcAddress(name) |
| 84 | #else | 84 | #else |
| 85 | #if defined(__APPLE__) | 85 | #if defined(__APPLE__) |
| @@ -1083,7 +1083,7 @@ static ogl_StrToExtMap *FindExtEntry(const char *extensionName) | |||
| 1083 | if(strcmp(extensionName, currLoc->extensionName) == 0) | 1083 | if(strcmp(extensionName, currLoc->extensionName) == 0) |
| 1084 | return currLoc; | 1084 | return currLoc; |
| 1085 | } | 1085 | } |
| 1086 | 1086 | ||
| 1087 | return NULL; | 1087 | return NULL; |
| 1088 | } | 1088 | } |
| 1089 | 1089 | ||
| @@ -1135,15 +1135,15 @@ int ogl_LoadFunctions() | |||
| 1135 | { | 1135 | { |
| 1136 | int numFailed = 0; | 1136 | int numFailed = 0; |
| 1137 | ClearExtensionVars(); | 1137 | ClearExtensionVars(); |
| 1138 | 1138 | ||
| 1139 | _ptrc_glGetIntegerv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint *))IntGetProcAddress("glGetIntegerv"); | 1139 | _ptrc_glGetIntegerv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint *))IntGetProcAddress("glGetIntegerv"); |
| 1140 | if(!_ptrc_glGetIntegerv) return ogl_LOAD_FAILED; | 1140 | if(!_ptrc_glGetIntegerv) return ogl_LOAD_FAILED; |
| 1141 | _ptrc_glGetStringi = (const GLubyte * (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glGetStringi"); | 1141 | _ptrc_glGetStringi = (const GLubyte * (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glGetStringi"); |
| 1142 | if(!_ptrc_glGetStringi) return ogl_LOAD_FAILED; | 1142 | if(!_ptrc_glGetStringi) return ogl_LOAD_FAILED; |
| 1143 | 1143 | ||
| 1144 | ProcExtsFromExtList(); | 1144 | ProcExtsFromExtList(); |
| 1145 | numFailed = Load_Version_3_2(); | 1145 | numFailed = Load_Version_3_2(); |
| 1146 | 1146 | ||
| 1147 | if(numFailed == 0) | 1147 | if(numFailed == 0) |
| 1148 | return ogl_LOAD_SUCCEEDED; | 1148 | return ogl_LOAD_SUCCEEDED; |
| 1149 | else | 1149 | else |
| @@ -1177,7 +1177,7 @@ int ogl_IsVersionGEQ(int majorVersion, int minorVersion) | |||
| 1177 | { | 1177 | { |
| 1178 | if(g_major_version == 0) | 1178 | if(g_major_version == 0) |
| 1179 | GetGLVersion(); | 1179 | GetGLVersion(); |
| 1180 | 1180 | ||
| 1181 | if(majorVersion > g_major_version) return 1; | 1181 | if(majorVersion > g_major_version) return 1; |
| 1182 | if(majorVersion < g_major_version) return 0; | 1182 | if(majorVersion < g_major_version) return 0; |
| 1183 | if(minorVersion >= g_minor_version) return 1; | 1183 | if(minorVersion >= g_minor_version) return 1; |
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 4b7d099a5..bacdb7172 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -350,7 +350,7 @@ void RasterizerOpenGL::NotifyPicaRegisterChanged(u32 id) { | |||
| 350 | case PICA_REG_INDEX(tev_stage5.color_scale): | 350 | case PICA_REG_INDEX(tev_stage5.color_scale): |
| 351 | SyncTevMultipliers(5, regs.tev_stage5); | 351 | SyncTevMultipliers(5, regs.tev_stage5); |
| 352 | break; | 352 | break; |
| 353 | 353 | ||
| 354 | // TEV combiner buffer color | 354 | // TEV combiner buffer color |
| 355 | case PICA_REG_INDEX(tev_combiner_buffer_color): | 355 | case PICA_REG_INDEX(tev_combiner_buffer_color): |
| 356 | SyncCombinerColor(); | 356 | SyncCombinerColor(); |
diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 1afa58c99..0d7ba1983 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp | |||
| @@ -82,7 +82,7 @@ void OpenGLState::Apply() { | |||
| 82 | } else { | 82 | } else { |
| 83 | glDisable(GL_STENCIL_TEST); | 83 | glDisable(GL_STENCIL_TEST); |
| 84 | } | 84 | } |
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | if (stencil.test_func != cur_state.stencil.test_func || | 87 | if (stencil.test_func != cur_state.stencil.test_func || |
| 88 | stencil.test_ref != cur_state.stencil.test_ref || | 88 | stencil.test_ref != cur_state.stencil.test_ref || |
diff --git a/src/video_core/renderer_opengl/gl_state.h b/src/video_core/renderer_opengl/gl_state.h index 281b7cad5..63dba2761 100644 --- a/src/video_core/renderer_opengl/gl_state.h +++ b/src/video_core/renderer_opengl/gl_state.h | |||
| @@ -61,7 +61,7 @@ public: | |||
| 61 | static const OpenGLState& GetCurState() { | 61 | static const OpenGLState& GetCurState() { |
| 62 | return cur_state; | 62 | return cur_state; |
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | /// Apply this state as the current OpenGL state | 65 | /// Apply this state as the current OpenGL state |
| 66 | void Apply(); | 66 | void Apply(); |
| 67 | 67 | ||
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index 16cf92e20..382aeaa05 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp | |||
| @@ -157,7 +157,7 @@ void RendererOpenGL::LoadFBToActiveGLTexture(const GPU::Regs::FramebufferConfig& | |||
| 157 | state.texture_units[0].enabled_2d = true; | 157 | state.texture_units[0].enabled_2d = true; |
| 158 | state.texture_units[0].texture_2d = texture.handle; | 158 | state.texture_units[0].texture_2d = texture.handle; |
| 159 | state.Apply(); | 159 | state.Apply(); |
| 160 | 160 | ||
| 161 | glActiveTexture(GL_TEXTURE0); | 161 | glActiveTexture(GL_TEXTURE0); |
| 162 | glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint)pixel_stride); | 162 | glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint)pixel_stride); |
| 163 | 163 | ||
diff --git a/src/video_core/vertex_shader.cpp b/src/video_core/vertex_shader.cpp index 7d68998f1..4ebb42429 100644 --- a/src/video_core/vertex_shader.cpp +++ b/src/video_core/vertex_shader.cpp | |||
| @@ -330,7 +330,7 @@ static void ProcessShaderCode(VertexShaderState& state) { | |||
| 330 | 330 | ||
| 331 | case OpCode::Type::MultiplyAdd: | 331 | case OpCode::Type::MultiplyAdd: |
| 332 | { | 332 | { |
| 333 | if ((instr.opcode.Value().EffectiveOpCode() == OpCode::Id::MAD) || | 333 | if ((instr.opcode.Value().EffectiveOpCode() == OpCode::Id::MAD) || |
| 334 | (instr.opcode.Value().EffectiveOpCode() == OpCode::Id::MADI)) { | 334 | (instr.opcode.Value().EffectiveOpCode() == OpCode::Id::MADI)) { |
| 335 | const SwizzlePattern& swizzle = *(SwizzlePattern*)&swizzle_data[instr.mad.operand_desc_id]; | 335 | const SwizzlePattern& swizzle = *(SwizzlePattern*)&swizzle_data[instr.mad.operand_desc_id]; |
| 336 | 336 | ||
| @@ -547,7 +547,7 @@ OutputVertex RunShader(const InputVertex& input, int num_attributes) { | |||
| 547 | const auto& attribute_register_map = regs.vs_input_register_map; | 547 | const auto& attribute_register_map = regs.vs_input_register_map; |
| 548 | float24 dummy_register; | 548 | float24 dummy_register; |
| 549 | boost::fill(state.input_register_table, &dummy_register); | 549 | boost::fill(state.input_register_table, &dummy_register); |
| 550 | 550 | ||
| 551 | if (num_attributes > 0) state.input_register_table[attribute_register_map.attribute0_register] = &input.attr[0].x; | 551 | if (num_attributes > 0) state.input_register_table[attribute_register_map.attribute0_register] = &input.attr[0].x; |
| 552 | if (num_attributes > 1) state.input_register_table[attribute_register_map.attribute1_register] = &input.attr[1].x; | 552 | if (num_attributes > 1) state.input_register_table[attribute_register_map.attribute1_register] = &input.attr[1].x; |
| 553 | if (num_attributes > 2) state.input_register_table[attribute_register_map.attribute2_register] = &input.attr[2].x; | 553 | if (num_attributes > 2) state.input_register_table[attribute_register_map.attribute2_register] = &input.attr[2].x; |