mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	service: Add mvd and qtm services
Adds the two New3DS-only modules. 3dbrew was used for command information.
This commit is contained in:
		
							parent
							
								
									d098d941d7
								
							
						
					
					
						commit
						2061d2014d
					
				
					 14 changed files with 271 additions and 0 deletions
				
			
		|  | @ -105,6 +105,8 @@ set(SRCS | |||
|             hle/service/ldr_ro/ldr_ro.cpp | ||||
|             hle/service/ldr_ro/memory_synchronizer.cpp | ||||
|             hle/service/mic_u.cpp | ||||
|             hle/service/mvd/mvd.cpp | ||||
|             hle/service/mvd/mvd_std.cpp | ||||
|             hle/service/ndm/ndm.cpp | ||||
|             hle/service/ndm/ndm_u.cpp | ||||
|             hle/service/nfc/nfc.cpp | ||||
|  | @ -124,6 +126,10 @@ set(SRCS | |||
|             hle/service/ptm/ptm_play.cpp | ||||
|             hle/service/ptm/ptm_sysm.cpp | ||||
|             hle/service/ptm/ptm_u.cpp | ||||
|             hle/service/qtm/qtm.cpp | ||||
|             hle/service/qtm/qtm_s.cpp | ||||
|             hle/service/qtm/qtm_sp.cpp | ||||
|             hle/service/qtm/qtm_u.cpp | ||||
|             hle/service/service.cpp | ||||
|             hle/service/soc_u.cpp | ||||
|             hle/service/srv.cpp | ||||
|  | @ -259,6 +265,8 @@ set(HEADERS | |||
|             hle/service/ldr_ro/ldr_ro.h | ||||
|             hle/service/ldr_ro/memory_synchronizer.h | ||||
|             hle/service/mic_u.h | ||||
|             hle/service/mvd/mvd.h | ||||
|             hle/service/mvd/mvd_std.h | ||||
|             hle/service/ndm/ndm.h | ||||
|             hle/service/ndm/ndm_u.h | ||||
|             hle/service/nfc/nfc.h | ||||
|  | @ -278,6 +286,10 @@ set(HEADERS | |||
|             hle/service/ptm/ptm_play.h | ||||
|             hle/service/ptm/ptm_sysm.h | ||||
|             hle/service/ptm/ptm_u.h | ||||
|             hle/service/qtm/qtm.h | ||||
|             hle/service/qtm/qtm_s.h | ||||
|             hle/service/qtm/qtm_sp.h | ||||
|             hle/service/qtm/qtm_u.h | ||||
|             hle/service/service.h | ||||
|             hle/service/soc_u.h | ||||
|             hle/service/srv.h | ||||
|  |  | |||
							
								
								
									
										17
									
								
								src/core/hle/service/mvd/mvd.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/core/hle/service/mvd/mvd.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | |||
| // Copyright 2016 Citra Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "core/hle/service/mvd/mvd.h" | ||||
| #include "core/hle/service/mvd/mvd_std.h" | ||||
| #include "core/hle/service/service.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace MVD { | ||||
| 
 | ||||
| void Init() { | ||||
|     AddService(new MVD_STD()); | ||||
| } | ||||
| 
 | ||||
| } // namespace MVD
 | ||||
| } // namespace Service
 | ||||
							
								
								
									
										14
									
								
								src/core/hle/service/mvd/mvd.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/core/hle/service/mvd/mvd.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | |||
| // Copyright 2016 Citra Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace MVD { | ||||
| 
 | ||||
| /// Initializes all MVD services.
 | ||||
| void Init(); | ||||
| 
 | ||||
| } // namespace MVD
 | ||||
| } // namespace Service
 | ||||
							
								
								
									
										32
									
								
								src/core/hle/service/mvd/mvd_std.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								src/core/hle/service/mvd/mvd_std.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,32 @@ | |||
| // Copyright 2016 Citra Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "core/hle/service/mvd/mvd_std.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace MVD { | ||||
| 
 | ||||
| const Interface::FunctionInfo FunctionTable[] = { | ||||
|     // clang-format off
 | ||||
|     {0x00010082, nullptr, "Initialize"}, | ||||
|     {0x00020000, nullptr, "Shutdown"}, | ||||
|     {0x00030300, nullptr, "CalculateWorkBufSize"}, | ||||
|     {0x000400C0, nullptr, "CalculateImageSize"}, | ||||
|     {0x00080142, nullptr, "ProcessNALUnit"}, | ||||
|     {0x00090042, nullptr, "ControlFrameRendering"}, | ||||
|     {0x000A0000, nullptr, "GetStatus"}, | ||||
|     {0x000B0000, nullptr, "GetStatusOther"}, | ||||
|     {0x001D0042, nullptr, "GetConfig"}, | ||||
|     {0x001E0044, nullptr, "SetConfig"}, | ||||
|     {0x001F0902, nullptr, "SetOutputBuffer"}, | ||||
|     {0x00210100, nullptr, "OverrideOutputBuffers"} | ||||
|     // clang-format on
 | ||||
| }; | ||||
| 
 | ||||
| MVD_STD::MVD_STD() { | ||||
|     Register(FunctionTable); | ||||
| } | ||||
| 
 | ||||
| } // namespace MVD
 | ||||
| } // namespace Service
 | ||||
							
								
								
									
										22
									
								
								src/core/hle/service/mvd/mvd_std.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/core/hle/service/mvd/mvd_std.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | |||
| // Copyright 2016 Citra Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include "core/hle/service/service.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace MVD { | ||||
| 
 | ||||
| class MVD_STD final : public Interface { | ||||
| public: | ||||
|     MVD_STD(); | ||||
| 
 | ||||
|     std::string GetPortName() const override { | ||||
|         return "mvd:std"; | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
| } // namespace MVD
 | ||||
| } // namespace Service
 | ||||
							
								
								
									
										21
									
								
								src/core/hle/service/qtm/qtm.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/core/hle/service/qtm/qtm.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| // Copyright 2016 Citra Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "core/hle/service/qtm/qtm.h" | ||||
| #include "core/hle/service/qtm/qtm_s.h" | ||||
| #include "core/hle/service/qtm/qtm_sp.h" | ||||
| #include "core/hle/service/qtm/qtm_u.h" | ||||
| #include "core/hle/service/service.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace QTM { | ||||
| 
 | ||||
| void Init() { | ||||
|     AddService(new QTM_S()); | ||||
|     AddService(new QTM_SP()); | ||||
|     AddService(new QTM_U()); | ||||
| } | ||||
| 
 | ||||
| } // namespace QTM
 | ||||
| } // namespace Service
 | ||||
							
								
								
									
										14
									
								
								src/core/hle/service/qtm/qtm.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/core/hle/service/qtm/qtm.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | |||
| // Copyright 2016 Citra Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace QTM { | ||||
| 
 | ||||
| /// Initializes all QTM services.
 | ||||
| void Init(); | ||||
| 
 | ||||
| } // namespace QTM
 | ||||
| } // namespace Service
 | ||||
							
								
								
									
										23
									
								
								src/core/hle/service/qtm/qtm_s.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								src/core/hle/service/qtm/qtm_s.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | |||
| // Copyright 2016 Citra Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "core/hle/service/qtm/qtm_s.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace QTM { | ||||
| 
 | ||||
| const Interface::FunctionInfo FunctionTable[] = { | ||||
|     // clang-format off
 | ||||
|     // qtm common commands
 | ||||
|     {0x00010080, nullptr, "GetHeadtrackingInfoRaw"}, | ||||
|     {0x00020080, nullptr, "GetHeadtrackingInfo"}, | ||||
|     // clang-format on
 | ||||
| }; | ||||
| 
 | ||||
| QTM_S::QTM_S() { | ||||
|     Register(FunctionTable); | ||||
| } | ||||
| 
 | ||||
| } // namespace QTM
 | ||||
| } // namespace Service
 | ||||
							
								
								
									
										22
									
								
								src/core/hle/service/qtm/qtm_s.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/core/hle/service/qtm/qtm_s.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | |||
| // Copyright 2016 Citra Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include "core/hle/service/service.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace QTM { | ||||
| 
 | ||||
| class QTM_S final : public Interface { | ||||
| public: | ||||
|     QTM_S(); | ||||
| 
 | ||||
|     std::string GetPortName() const override { | ||||
|         return "qtm:s"; | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
| } // namespace QTM
 | ||||
| } // namespace Service
 | ||||
							
								
								
									
										23
									
								
								src/core/hle/service/qtm/qtm_sp.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								src/core/hle/service/qtm/qtm_sp.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | |||
| // Copyright 2016 Citra Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "core/hle/service/qtm/qtm_sp.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace QTM { | ||||
| 
 | ||||
| const Interface::FunctionInfo FunctionTable[] = { | ||||
|     // clang-format off
 | ||||
|     // qtm common commands
 | ||||
|     {0x00010080, nullptr, "GetHeadtrackingInfoRaw"}, | ||||
|     {0x00020080, nullptr, "GetHeadtrackingInfo"}, | ||||
|     // clang-format on
 | ||||
| }; | ||||
| 
 | ||||
| QTM_SP::QTM_SP() { | ||||
|     Register(FunctionTable); | ||||
| } | ||||
| 
 | ||||
| } // namespace QTM
 | ||||
| } // namespace Service
 | ||||
							
								
								
									
										22
									
								
								src/core/hle/service/qtm/qtm_sp.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/core/hle/service/qtm/qtm_sp.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | |||
| // Copyright 2016 Citra Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include "core/hle/service/service.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace QTM { | ||||
| 
 | ||||
| class QTM_SP final : public Interface { | ||||
| public: | ||||
|     QTM_SP(); | ||||
| 
 | ||||
|     std::string GetPortName() const override { | ||||
|         return "qtm:sp"; | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
| } // namespace QTM
 | ||||
| } // namespace Service
 | ||||
							
								
								
									
										23
									
								
								src/core/hle/service/qtm/qtm_u.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								src/core/hle/service/qtm/qtm_u.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | |||
| // Copyright 2016 Citra Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "core/hle/service/qtm/qtm_u.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace QTM { | ||||
| 
 | ||||
| const Interface::FunctionInfo FunctionTable[] = { | ||||
|     // clang-format off
 | ||||
|     // qtm common commands
 | ||||
|     {0x00010080, nullptr, "GetHeadtrackingInfoRaw"}, | ||||
|     {0x00020080, nullptr, "GetHeadtrackingInfo"}, | ||||
|     // clang-format on
 | ||||
| }; | ||||
| 
 | ||||
| QTM_U::QTM_U() { | ||||
|     Register(FunctionTable); | ||||
| } | ||||
| 
 | ||||
| } // namespace QTM
 | ||||
| } // namespace Service
 | ||||
							
								
								
									
										22
									
								
								src/core/hle/service/qtm/qtm_u.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/core/hle/service/qtm/qtm_u.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | |||
| // Copyright 2016 Citra Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include "core/hle/service/service.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace QTM { | ||||
| 
 | ||||
| class QTM_U final : public Interface { | ||||
| public: | ||||
|     QTM_U(); | ||||
| 
 | ||||
|     std::string GetPortName() const override { | ||||
|         return "qtm:u"; | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
| } // namespace QTM
 | ||||
| } // namespace Service
 | ||||
|  | @ -26,6 +26,7 @@ | |||
| #include "core/hle/service/ir/ir.h" | ||||
| #include "core/hle/service/ldr_ro/ldr_ro.h" | ||||
| #include "core/hle/service/mic_u.h" | ||||
| #include "core/hle/service/mvd/mvd.h" | ||||
| #include "core/hle/service/ndm/ndm.h" | ||||
| #include "core/hle/service/news/news.h" | ||||
| #include "core/hle/service/nfc/nfc.h" | ||||
|  | @ -34,6 +35,7 @@ | |||
| #include "core/hle/service/nwm_uds.h" | ||||
| #include "core/hle/service/pm_app.h" | ||||
| #include "core/hle/service/ptm/ptm.h" | ||||
| #include "core/hle/service/qtm/qtm.h" | ||||
| #include "core/hle/service/service.h" | ||||
| #include "core/hle/service/soc_u.h" | ||||
| #include "core/hle/service/srv.h" | ||||
|  | @ -121,11 +123,13 @@ void Init() { | |||
|     FRD::Init(); | ||||
|     HID::Init(); | ||||
|     IR::Init(); | ||||
|     MVD::Init(); | ||||
|     NDM::Init(); | ||||
|     NEWS::Init(); | ||||
|     NFC::Init(); | ||||
|     NIM::Init(); | ||||
|     PTM::Init(); | ||||
|     QTM::Init(); | ||||
| 
 | ||||
|     AddService(new AC_U::Interface); | ||||
|     AddService(new ACT_A::Interface); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue