diff --git a/.travis.yml b/.travis.yml index 0135e71c4..7536f47a3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,6 @@ language: cpp os: - linux -sudo: required dist: bionic addons: apt: @@ -27,10 +26,9 @@ addons: - libx11-dev - liblz4-dev -matrix: +jobs: include: - env: C_COMPILER=clang-9 CXX_COMPILER=clang++-9 LINT=true - sudo: false - env: C_COMPILER=clang-9 CXX_COMPILER=clang++-9 BUILD=true CONFIG=Debug - env: C_COMPILER=clang-9 CXX_COMPILER=clang++-9 BUILD=true CONFIG=Release diff --git a/src/xenia/cpu/backend/x64/x64_seq_memory.cc b/src/xenia/cpu/backend/x64/x64_seq_memory.cc index 7607f6f44..191146e6f 100644 --- a/src/xenia/cpu/backend/x64/x64_seq_memory.cc +++ b/src/xenia/cpu/backend/x64/x64_seq_memory.cc @@ -1045,12 +1045,12 @@ struct CACHE_CONTROL static void Emit(X64Emitter& e, const EmitArgType& i) { bool is_clflush = false, is_prefetch = false; switch (CacheControlType(i.instr->flags)) { - case CacheControlType::CACHE_CONTOROL_TYPE_DATA_TOUCH: - case CacheControlType::CACHE_CONTOROL_TYPE_DATA_TOUCH_FOR_STORE: + case CacheControlType::CACHE_CONTROL_TYPE_DATA_TOUCH: + case CacheControlType::CACHE_CONTROL_TYPE_DATA_TOUCH_FOR_STORE: is_prefetch = true; break; - case CacheControlType::CACHE_CONTOROL_TYPE_DATA_STORE: - case CacheControlType::CACHE_CONTOROL_TYPE_DATA_STORE_AND_FLUSH: + case CacheControlType::CACHE_CONTROL_TYPE_DATA_STORE: + case CacheControlType::CACHE_CONTROL_TYPE_DATA_STORE_AND_FLUSH: is_clflush = true; break; default: diff --git a/src/xenia/cpu/hir/opcodes.h b/src/xenia/cpu/hir/opcodes.h index d0e29347c..488e7e168 100644 --- a/src/xenia/cpu/hir/opcodes.h +++ b/src/xenia/cpu/hir/opcodes.h @@ -40,10 +40,10 @@ enum LoadStoreFlags { }; enum CacheControlType { - CACHE_CONTOROL_TYPE_DATA_TOUCH, - CACHE_CONTOROL_TYPE_DATA_TOUCH_FOR_STORE, - CACHE_CONTOROL_TYPE_DATA_STORE, - CACHE_CONTOROL_TYPE_DATA_STORE_AND_FLUSH, + CACHE_CONTROL_TYPE_DATA_TOUCH, + CACHE_CONTROL_TYPE_DATA_TOUCH_FOR_STORE, + CACHE_CONTROL_TYPE_DATA_STORE, + CACHE_CONTROL_TYPE_DATA_STORE_AND_FLUSH, }; enum ArithmeticFlags { diff --git a/src/xenia/cpu/ppc/ppc_emit_memory.cc b/src/xenia/cpu/ppc/ppc_emit_memory.cc index 36fb1d392..fc8e2a3ea 100644 --- a/src/xenia/cpu/ppc/ppc_emit_memory.cc +++ b/src/xenia/cpu/ppc/ppc_emit_memory.cc @@ -1091,27 +1091,27 @@ int InstrEmit_dcbf(PPCHIRBuilder& f, const InstrData& i) { } else { Value* ea = CalculateEA_0(f, i.X.RA, i.X.RB); f.CacheControl(ea, 128, - CacheControlType::CACHE_CONTOROL_TYPE_DATA_STORE_AND_FLUSH); + CacheControlType::CACHE_CONTROL_TYPE_DATA_STORE_AND_FLUSH); } return 0; } int InstrEmit_dcbst(PPCHIRBuilder& f, const InstrData& i) { Value* ea = CalculateEA_0(f, i.X.RA, i.X.RB); - f.CacheControl(ea, 128, CacheControlType::CACHE_CONTOROL_TYPE_DATA_STORE); + f.CacheControl(ea, 128, CacheControlType::CACHE_CONTROL_TYPE_DATA_STORE); return 0; } int InstrEmit_dcbt(PPCHIRBuilder& f, const InstrData& i) { Value* ea = CalculateEA_0(f, i.X.RA, i.X.RB); - f.CacheControl(ea, 128, CacheControlType::CACHE_CONTOROL_TYPE_DATA_TOUCH); + f.CacheControl(ea, 128, CacheControlType::CACHE_CONTROL_TYPE_DATA_TOUCH); return 0; } int InstrEmit_dcbtst(PPCHIRBuilder& f, const InstrData& i) { Value* ea = CalculateEA_0(f, i.X.RA, i.X.RB); f.CacheControl(ea, 128, - CacheControlType::CACHE_CONTOROL_TYPE_DATA_TOUCH_FOR_STORE); + CacheControlType::CACHE_CONTROL_TYPE_DATA_TOUCH_FOR_STORE); return 0; } diff --git a/src/xenia/gpu/registers.cc b/src/xenia/gpu/registers.cc index df7aaa48a..63274faa4 100644 --- a/src/xenia/gpu/registers.cc +++ b/src/xenia/gpu/registers.cc @@ -19,6 +19,7 @@ constexpr Register WAIT_UNTIL::register_index; constexpr Register SQ_PROGRAM_CNTL::register_index; constexpr Register SQ_CONTEXT_MISC::register_index; +constexpr Register VGT_DRAW_INITIATOR::register_index; constexpr Register VGT_OUTPUT_PATH_CNTL::register_index; constexpr Register VGT_HOS_CNTL::register_index; diff --git a/src/xenia/kernel/xam/xam_net.cc b/src/xenia/kernel/xam/xam_net.cc index 107003068..9078f84de 100644 --- a/src/xenia/kernel/xam/xam_net.cc +++ b/src/xenia/kernel/xam/xam_net.cc @@ -1009,10 +1009,16 @@ dword_result_t NetDll_sendto(dword_t caller, dword_t socket_handle, } DECLARE_XAM_EXPORT1(NetDll_sendto, kNetworking, kImplemented); -dword_result_t NetDll___WSAFDIsSet(dword_t socket_handle, lpvoid_t fd_set) { +dword_result_t NetDll___WSAFDIsSet(dword_t socket_handle, + pointer_t fd_set) { + for (uint32_t i = 0; i < fd_set->fd_count.value; i++) { + if (fd_set->fd_array[i] == socket_handle) { + return 1; + } + } return 0; } -DECLARE_XAM_EXPORT1(NetDll___WSAFDIsSet, kNetworking, kStub); +DECLARE_XAM_EXPORT1(NetDll___WSAFDIsSet, kNetworking, kImplemented); void RegisterNetExports(xe::cpu::ExportResolver* export_resolver, KernelState* kernel_state) { diff --git a/src/xenia/kernel/xam/xam_ui.cc b/src/xenia/kernel/xam/xam_ui.cc index cb3c17742..eb5c35efe 100644 --- a/src/xenia/kernel/xam/xam_ui.cc +++ b/src/xenia/kernel/xam/xam_ui.cc @@ -39,6 +39,9 @@ class MessageBoxDialog : public xe::ui::ImGuiDialog { buttons_(std::move(buttons)), default_button_(default_button), out_chosen_button_(out_chosen_button) { + if (!title_.size()) { + title_ = "Message Box"; + } if (out_chosen_button) { *out_chosen_button = default_button; } @@ -53,7 +56,9 @@ class MessageBoxDialog : public xe::ui::ImGuiDialog { } if (ImGui::BeginPopupModal(title_.c_str(), nullptr, ImGuiWindowFlags_AlwaysAutoResize)) { - ImGui::Text("%s", description_.c_str()); + if (description_.size()) { + ImGui::Text("%s", description_.c_str()); + } if (first_draw) { ImGui::SetKeyboardFocusHere(); } @@ -214,6 +219,14 @@ class KeyboardInputDialog : public xe::ui::ImGuiDialog { default_text_(xe::to_string(default_text)), out_text_(out_text), max_length_(max_length) { + if (!title_.size()) { + if (!description_.size()) { + title_ = "Keyboard Input"; + } else { + title_ = description_; + description_ = ""; + } + } if (out_text_) { *out_text_ = default_text; } @@ -231,7 +244,9 @@ class KeyboardInputDialog : public xe::ui::ImGuiDialog { } if (ImGui::BeginPopupModal(title_.c_str(), nullptr, ImGuiWindowFlags_AlwaysAutoResize)) { - ImGui::TextWrapped("%s", description_.c_str()); + if (description_.size()) { + ImGui::TextWrapped("%s", description_.c_str()); + } if (first_draw) { ImGui::SetKeyboardFocusHere(); }