diff options
| author | 2015-05-19 21:11:32 -0400 | |
|---|---|---|
| committer | 2015-05-20 18:05:47 -0400 | |
| commit | 25f14e76f1114ff05449b2959a0af4ef713fea18 (patch) | |
| tree | f796aa2c461375435080c7a4068d68d7ebd60bad | |
| parent | Kernel: Move reschedules from SVCs to actual mechanisms that reschedule. (diff) | |
| download | yuzu-25f14e76f1114ff05449b2959a0af4ef713fea18.tar.gz yuzu-25f14e76f1114ff05449b2959a0af4ef713fea18.tar.xz yuzu-25f14e76f1114ff05449b2959a0af4ef713fea18.zip | |
y2r_u: Stub StartConversion to prevent moflex games from hanging.
| -rw-r--r-- | src/core/hle/service/y2r_u.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/core/hle/service/y2r_u.cpp b/src/core/hle/service/y2r_u.cpp index 085192a07..edc443611 100644 --- a/src/core/hle/service/y2r_u.cpp +++ b/src/core/hle/service/y2r_u.cpp | |||
| @@ -43,6 +43,22 @@ static void GetTransferEndEvent(Service::Interface* self) { | |||
| 43 | cmd_buff[3] = Kernel::g_handle_table.Create(completion_event).MoveFrom(); | 43 | cmd_buff[3] = Kernel::g_handle_table.Create(completion_event).MoveFrom(); |
| 44 | } | 44 | } |
| 45 | 45 | ||
| 46 | /** | ||
| 47 | * Starts a YUV -> RGB conversion | ||
| 48 | */ | ||
| 49 | static void StartConversion(Service::Interface* self) { | ||
| 50 | u32* cmd_buff = Kernel::GetCommandBuffer(); | ||
| 51 | |||
| 52 | // TODO(bunnei): This is hack to indicate to the game that the conversion has immediately | ||
| 53 | // completed, even though it's not actually implemented yet. This fixes games that would | ||
| 54 | // otherwise hang on trying to play moflex videos, which uses the Y2R service. | ||
| 55 | completion_event->Signal(); | ||
| 56 | |||
| 57 | LOG_WARNING(Service, "(STUBBED) called, expect blank video (MOFLEX) output!"); | ||
| 58 | |||
| 59 | cmd_buff[1] = RESULT_SUCCESS.raw; | ||
| 60 | } | ||
| 61 | |||
| 46 | const Interface::FunctionInfo FunctionTable[] = { | 62 | const Interface::FunctionInfo FunctionTable[] = { |
| 47 | {0x00010040, nullptr, "SetInputFormat"}, | 63 | {0x00010040, nullptr, "SetInputFormat"}, |
| 48 | {0x00030040, nullptr, "SetOutputFormat"}, | 64 | {0x00030040, nullptr, "SetOutputFormat"}, |
| @@ -58,7 +74,7 @@ const Interface::FunctionInfo FunctionTable[] = { | |||
| 58 | {0x001C0040, nullptr, "SetInputLines"}, | 74 | {0x001C0040, nullptr, "SetInputLines"}, |
| 59 | {0x00200040, nullptr, "SetStandardCoefficient"}, | 75 | {0x00200040, nullptr, "SetStandardCoefficient"}, |
| 60 | {0x00220040, nullptr, "SetAlpha"}, | 76 | {0x00220040, nullptr, "SetAlpha"}, |
| 61 | {0x00260000, nullptr, "StartConversion"}, | 77 | {0x00260000, StartConversion, "StartConversion"}, |
| 62 | {0x00270000, nullptr, "StopConversion"}, | 78 | {0x00270000, nullptr, "StopConversion"}, |
| 63 | {0x00280000, IsBusyConversion, "IsBusyConversion"}, | 79 | {0x00280000, IsBusyConversion, "IsBusyConversion"}, |
| 64 | {0x002A0000, nullptr, "PingProcess"}, | 80 | {0x002A0000, nullptr, "PingProcess"}, |