#include "prx/libScePad/include/Pad.hpp" #include "prx/libc/include/general/VabiMacros.hpp" #include extern "C" { int APS5_VABI scePadOpen_nid_postfix(int, int, int, const void*); int APS5_VABI scePadClose_nid_postfix(int); int APS5_VABI scePadGetHandle(int, int, int); int APS5_VABI scePadSetVibrationTriggerEffectWeakWhileEmbeddedMicInUse(bool); } static void Require(bool value) { if (!value) std::abort(); } int main() { constexpr int noHandle = static_cast(0x80920008); constexpr int user = 0x10000000; Require(scePadGetHandle(user, 0, 0) == noHandle); Require(scePadOpen_nid_postfix(user, 1, 0, nullptr) == PAD_ERROR_INVALID_ARG); Require(scePadOpen_nid_postfix(user, 0, 1, nullptr) == PAD_ERROR_INVALID_ARG); Require(scePadGetHandle(user, 0, 0) == noHandle); const int handle = scePadOpen_nid_postfix(user, 0, 0, nullptr); Require(handle > 0); Require(scePadGetHandle(user, 0, 0) == handle); Require(scePadGetHandle(user, 2, 0) == handle); Require(scePadGetHandle(0xff, 16, 0) == handle); Require(scePadGetHandle(user, 16, 0) == noHandle); Require(scePadGetHandle(user, 0, 1) == noHandle); Require(scePadClose_nid_postfix(handle) == 0); Require(scePadGetHandle(user, 0, 0) == noHandle); Require(scePadSetVibrationTriggerEffectWeakWhileEmbeddedMicInUse(true) == 0); }