1 // Copyright (c) 2012- PPSSPP Project.
2
3 // This program is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, version 2.0 or later versions.
6
7 // This program is distributed in the hope that it will be useful,
8 // but WITHOUT ANY WARRANTY; without even the implied warranty of
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 // GNU General Public License 2.0 for more details.
11
12 // A copy of the GPL 2.0 should have been included with the program.
13 // If not, see http://www.gnu.org/licenses/
14
15 // Official git repository and contact information can be found at
16 // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
17
18 #include "Core/HLE/HLE.h"
19 #include "Core/HLE/FunctionWrappers.h"
20 #include "Core/HLE/sceHprm.h"
21 #include "Core/MemMap.h"
22 #include "Core/MIPS/MIPS.h"
23
sceHprmPeekCurrentKey(u32 keyAddress)24 static u32 sceHprmPeekCurrentKey(u32 keyAddress) {
25 DEBUG_LOG(HLE,"0=sceHprmPeekCurrentKey(ptr)");
26 Memory::Write_U32(0, keyAddress);
27 return 0;
28 }
29
30 // TODO: Might make sense to reflect the headphone status of the host here,
31 // if the games adjust their sound.
sceHprmIsHeadphoneExist()32 static u32 sceHprmIsHeadphoneExist() {
33 DEBUG_LOG(HLE, "sceHprmIsHeadphoneExist()");
34 return 0;
35 }
36
sceHprmIsMicrophoneExist()37 static u32 sceHprmIsMicrophoneExist() {
38 DEBUG_LOG(HLE, "sceHprmIsMicrophoneExist()");
39 return 0;
40 }
41
sceHprmIsRemoteExist()42 static u32 sceHprmIsRemoteExist() {
43 DEBUG_LOG(HLE, "sceHprmIsRemoteExist()");
44 return 0;
45 }
46
sceHprmPeekLatch(u32 latchAddr)47 static u32 sceHprmPeekLatch(u32 latchAddr) {
48 DEBUG_LOG(HLE,"sceHprmPeekLatch latchAddr %08x",latchAddr);
49 return 0;
50 }
51
sceHprmReadLatch(u32 latchAddr)52 static u32 sceHprmReadLatch(u32 latchAddr) {
53 DEBUG_LOG(HLE,"sceHprmReadLatch latchAddr %08x",latchAddr);
54 return 0;
55 }
56
57 const HLEFunction sceHprm[] =
58 {
59 {0X089FDFA4, nullptr, "sceHprm_089fdfa4", '?', "" },
60 {0X1910B327, &WrapU_U<sceHprmPeekCurrentKey>, "sceHprmPeekCurrentKey", 'x', "x"},
61 {0X208DB1BD, &WrapU_V<sceHprmIsRemoteExist>, "sceHprmIsRemoteExist", 'x', "" },
62 {0X7E69EDA4, &WrapU_V<sceHprmIsHeadphoneExist>, "sceHprmIsHeadphoneExist", 'x', "" },
63 {0X219C58F1, &WrapU_V<sceHprmIsMicrophoneExist>, "sceHprmIsMicrophoneExist", 'x', "" },
64 {0XC7154136, nullptr, "sceHprmRegisterCallback", '?', "" },
65 {0X444ED0B7, nullptr, "sceHprmUnregitserCallback", '?', "" }, // Typo.
66 {0X2BCEC83E, &WrapU_U<sceHprmPeekLatch>, "sceHprmPeekLatch", 'x', "x"},
67 {0X40D2F9F0, &WrapU_U<sceHprmReadLatch>, "sceHprmReadLatch", 'x', "x"},
68 };
69
Register_sceHprm()70 void Register_sceHprm()
71 {
72 RegisterModule("sceHprm", ARRAY_SIZE(sceHprm), sceHprm);
73 }
74