From 8527fc95a37aca1d35a695baffbd6d13683935fa Mon Sep 17 00:00:00 2001 From: Echelon9 Date: Mon, 26 Nov 2012 01:31:54 +1100 Subject: [PATCH] Implement Kernel 0x0002 AvSendTVEncoderOption() --- src/CxbxKrnl/EmuKrnl.cpp | 28 ++++++++++++++++++++++++++++ src/CxbxKrnl/KernelThunk.cpp | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/CxbxKrnl/EmuKrnl.cpp b/src/CxbxKrnl/EmuKrnl.cpp index f1cff4313..96ba37e0d 100644 --- a/src/CxbxKrnl/EmuKrnl.cpp +++ b/src/CxbxKrnl/EmuKrnl.cpp @@ -1207,6 +1207,34 @@ XBSYSAPI EXPORTNUM(1) xboxkrnl::PVOID NTAPI xboxkrnl::AvGetSavedDataAddress() return NULL;//g_pPersistedData; } +// ****************************************************************** +// * 0x0002 AvSendTVEncoderOption() +// ****************************************************************** +XBSYSAPI EXPORTNUM(2) VOID NTAPI xboxkrnl::AvSendTVEncoderOption +( + IN PVOID RegisterBase, + IN ULONG Option, + IN ULONG Param, + OUT ULONG *Result +) +{ + EmuSwapFS(); // Win2k/XP FS + + DbgPrintf("EmuKrnl (0x%X): AvSendTVEncoderOption\n" + "(\n" + " RegisterBase : 0x%.08X\n" + " Option : 0x%.08X\n" + " Param : 0x%.08X\n" + " Result : 0x%.08X\n" + ");\n", + GetCurrentThreadId(), RegisterBase, Option, Param, Result); + + // TODO: What does this do? + EmuWarning( "AvSendTVEncoderOption ignored!" ); + + EmuSwapFS(); // Xbox FS +} + // ****************************************************************** // * 0x0008 DbgPrint // ****************************************************************** diff --git a/src/CxbxKrnl/KernelThunk.cpp b/src/CxbxKrnl/KernelThunk.cpp index f26634c78..e01fe6808 100644 --- a/src/CxbxKrnl/KernelThunk.cpp +++ b/src/CxbxKrnl/KernelThunk.cpp @@ -59,7 +59,7 @@ extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[367] = { (uint32)PANIC(0x0000), // 0x0000 (0) (uint32)&xboxkrnl::AvGetSavedDataAddress, // 0x0001 (1) - (uint32)PANIC(0x0002), // 0x0002 (2) + (uint32)&xboxkrnl::AvSendTVEncoderOption, // 0x0002 (2) (uint32)PANIC(0x0003), // 0x0003 (3) (uint32)PANIC(0x0004), // 0x0004 (4) (uint32)PANIC(0x0005), // 0x0005 (5)