From 194fc4c1fd0afd3f71de905449c92c79fb2defd8 Mon Sep 17 00:00:00 2001 From: gibbed Date: Sat, 23 May 2015 19:51:07 -0500 Subject: [PATCH] Calls to VdSetDisplayModeOverride seem to skip r5 as an argument. Set a return value in VdInitializeEngines. --- src/xenia/kernel/xboxkrnl_video.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/xenia/kernel/xboxkrnl_video.cc b/src/xenia/kernel/xboxkrnl_video.cc index b480fbc7b..4e7af316b 100644 --- a/src/xenia/kernel/xboxkrnl_video.cc +++ b/src/xenia/kernel/xboxkrnl_video.cc @@ -136,8 +136,8 @@ SHIM_CALL VdSetDisplayModeOverride_shim(PPCContext* ppc_state, uint32_t unk0 = SHIM_GET_ARG_32(0); uint32_t unk1 = SHIM_GET_ARG_32(1); double refresh_rate = ppc_state->f[1]; // 0, 50, 59.9, etc. - uint32_t unk3 = SHIM_GET_ARG_32(2); - uint32_t unk4 = SHIM_GET_ARG_32(3); + uint32_t unk3 = SHIM_GET_ARG_32(3); + uint32_t unk4 = SHIM_GET_ARG_32(4); // TODO(benvanik): something with refresh rate? XELOGD("VdSetDisplayModeOverride(%.8X, %.8X, %g, %.8X, %.8X)", unk0, unk1, @@ -160,6 +160,8 @@ SHIM_CALL VdInitializeEngines_shim(PPCContext* ppc_state, KernelState* state) { // r4 = function ptr (cleanup callback?) // r5 = 0 // r6/r7 = some binary data in .data + + SHIM_SET_RETURN_32(1); } SHIM_CALL VdShutdownEngines_shim(PPCContext* ppc_state, KernelState* state) {