diff --git a/src/xenia/kernel/sources.gypi b/src/xenia/kernel/sources.gypi index f6f5356d0..6b3fe4c2b 100644 --- a/src/xenia/kernel/sources.gypi +++ b/src/xenia/kernel/sources.gypi @@ -71,6 +71,8 @@ 'xboxkrnl_table.inc', 'xboxkrnl_threading.cc', 'xboxkrnl_threading.h', + 'xboxkrnl_usbcam.cc', + 'xboxkrnl_usbcam.h', 'xboxkrnl_video.cc', 'xboxkrnl_video.h', 'xobject.cc', diff --git a/src/xenia/kernel/xboxkrnl_module.cc b/src/xenia/kernel/xboxkrnl_module.cc index b695d44bc..4fe8c4ace 100644 --- a/src/xenia/kernel/xboxkrnl_module.cc +++ b/src/xenia/kernel/xboxkrnl_module.cc @@ -51,6 +51,7 @@ XboxkrnlModule::XboxkrnlModule(Emulator* emulator, KernelState* kernel_state) : RegisterRtlExports(export_resolver_, kernel_state_); RegisterStringExports(export_resolver_, kernel_state_); RegisterThreadingExports(export_resolver_, kernel_state); + RegisterUsbcamExports(export_resolver_, kernel_state); RegisterVideoExports(export_resolver_, kernel_state); uint8_t* mem = memory_->membase(); diff --git a/src/xenia/kernel/xboxkrnl_private.h b/src/xenia/kernel/xboxkrnl_private.h index db1f66a7e..b0612f0ca 100644 --- a/src/xenia/kernel/xboxkrnl_private.h +++ b/src/xenia/kernel/xboxkrnl_private.h @@ -36,6 +36,7 @@ void RegisterRtlExports(ExportResolver* export_resolver, KernelState* state); void RegisterStringExports(ExportResolver* export_resolver, KernelState* state); void RegisterThreadingExports(ExportResolver* export_resolver, KernelState* state); +void RegisterUsbcamExports(ExportResolver* export_resolver, KernelState* state); void RegisterVideoExports(ExportResolver* export_resolver, KernelState* state); } // namespace xboxkrnl diff --git a/src/xenia/kernel/xboxkrnl_usbcam.cc b/src/xenia/kernel/xboxkrnl_usbcam.cc new file mode 100644 index 000000000..e30966e0f --- /dev/null +++ b/src/xenia/kernel/xboxkrnl_usbcam.cc @@ -0,0 +1,45 @@ +/** + ****************************************************************************** + * Xenia : Xbox 360 Emulator Research Project * + ****************************************************************************** + * Copyright 2014 Ben Vanik. All rights reserved. * + * Released under the BSD license - see LICENSE in the root for more details. * + ****************************************************************************** + */ + +#include + +#include +#include +#include + + +using namespace xe; +using namespace xe::kernel; +using namespace xe::kernel::xboxkrnl; + + +namespace xe { +namespace kernel { + +SHIM_CALL XUsbcamCreate_shim( + PPCContext* ppc_state, KernelState* state) { + uint32_t unk1 = SHIM_GET_ARG_32(0); + uint32_t unk2 = SHIM_GET_ARG_32(1); + + XELOGD( + "XUsbcamCreate(%.8X, %.8X)", + unk1, unk2); + + SHIM_SET_RETURN_32(-1); +} + + +} // namespace kernel +} // namespace xe + + +void xe::kernel::xboxkrnl::RegisterUsbcamExports( + ExportResolver* export_resolver, KernelState* state) { + SHIM_SET_MAPPING("xboxkrnl.exe", XUsbcamCreate, state); +} diff --git a/src/xenia/kernel/xboxkrnl_usbcam.h b/src/xenia/kernel/xboxkrnl_usbcam.h new file mode 100644 index 000000000..7a69b65f6 --- /dev/null +++ b/src/xenia/kernel/xboxkrnl_usbcam.h @@ -0,0 +1,28 @@ +/** + ****************************************************************************** + * Xenia : Xbox 360 Emulator Research Project * + ****************************************************************************** + * Copyright 2014 Ben Vanik. All rights reserved. * + * Released under the BSD license - see LICENSE in the root for more details. * + ****************************************************************************** + */ + +#ifndef XENIA_KERNEL_XBOXKRNL_USBCAM_H_ +#define XENIA_KERNEL_XBOXKRNL_USBCAM_H_ + +#include +#include + +#include + + +namespace xe { +namespace kernel { + + + +} // namespace kernel +} // namespace xe + + +#endif // XENIA_KERNEL_XBOXKRNL_USBCAM_H_