diff --git a/src/alloy/frontend/ppc/ppc_emit_altivec.cc b/src/alloy/frontend/ppc/ppc_emit_altivec.cc index ac6e1ea45..75eb13a23 100644 --- a/src/alloy/frontend/ppc/ppc_emit_altivec.cc +++ b/src/alloy/frontend/ppc/ppc_emit_altivec.cc @@ -464,6 +464,10 @@ XEEMITTER(vavgsh, 0x10000542, VX)(PPCHIRBuilder& f, InstrData& i) { } XEEMITTER(vavgsw, 0x10000582, VX)(PPCHIRBuilder& f, InstrData& i) { + // do i = 0 to 127 by 32 + // aop = EXTS((VRA)i:i + 31) + // bop = EXTS((VRB)i:i + 31) + // VRTi:i + 31 = Chop((aop + int bop + int 1) >> 1, 32) XEINSTRNOTIMPLEMENTED(); return 1; } diff --git a/src/xenia/kernel/xboxkrnl_io.cc b/src/xenia/kernel/xboxkrnl_io.cc index ef4e1ffcd..40dcacff7 100644 --- a/src/xenia/kernel/xboxkrnl_io.cc +++ b/src/xenia/kernel/xboxkrnl_io.cc @@ -100,17 +100,17 @@ X_STATUS NtCreateFile(PPCContext* ppc_state, KernelState* state, entry = fs->ResolvePath(object_name); } + if (creation_disposition != FileDisposition::X_FILE_OPEN || + desired_access & FileAccess::X_GENERIC_WRITE || + desired_access & FileAccess::X_GENERIC_ALL) { + // We don't support any write modes. + XELOGW("Attempted to open the file/dir for create/write"); + } + XFile* file = nullptr; if (!entry) { result = X_STATUS_NO_SUCH_FILE; info = X_FILE_DOES_NOT_EXIST; - } else if (creation_disposition != FileDisposition::X_FILE_OPEN || - desired_access & FileAccess::X_GENERIC_WRITE || - desired_access & FileAccess::X_GENERIC_ALL) { - // We don't support any write modes. - XELOGE("Attempted to open the file/dir for create/write"); - result = X_STATUS_ACCESS_DENIED; - info = entry ? X_FILE_EXISTS : X_FILE_DOES_NOT_EXIST; } else { // Open the file/directory. result = fs->Open(std::move(entry), state, fs::Mode::READ,