#pragma once #include // I know ugly, but will work for now. #define PS2_SYSCALL_LIST(X) \ X(FlushCache) \ X(iFlushCache) \ X(ResetEE) \ X(SetMemoryMode) \ \ X(InitThread) \ X(CreateThread) \ X(DeleteThread) \ X(StartThread) \ X(ExitThread) \ X(ExitDeleteThread) \ X(TerminateThread) \ X(SuspendThread) \ X(ResumeThread) \ X(GetThreadId) \ X(ReferThreadStatus) \ X(iReferThreadStatus) \ X(SleepThread) \ X(WakeupThread) \ X(iWakeupThread) \ X(CancelWakeupThread) \ X(iCancelWakeupThread) \ X(ChangeThreadPriority) \ X(iChangeThreadPriority) \ X(RotateThreadReadyQueue) \ X(iRotateThreadReadyQueue) \ X(ReleaseWaitThread) \ X(iReleaseWaitThread) \ \ X(CreateSema) \ X(DeleteSema) \ X(SignalSema) \ X(iSignalSema) \ X(WaitSema) \ X(PollSema) \ X(iPollSema) \ X(ReferSemaStatus) \ X(iReferSemaStatus) \ \ X(CreateEventFlag) \ X(DeleteEventFlag) \ X(SetEventFlag) \ X(iSetEventFlag) \ X(ClearEventFlag) \ X(iClearEventFlag) \ X(WaitEventFlag) \ X(PollEventFlag) \ X(iPollEventFlag) \ X(ReferEventFlagStatus) \ X(iReferEventFlagStatus) \ \ X(InitAlarm) \ X(SetAlarm) \ X(iSetAlarm) \ X(CancelAlarm) \ X(iCancelAlarm) \ X(ReleaseAlarm) \ X(iReleaseAlarm) \ \ X(AddIntcHandler) \ X(AddIntcHandler2) \ X(RemoveIntcHandler) \ X(AddDmacHandler) \ X(AddDmacHandler2) \ X(RemoveDmacHandler) \ X(EnableIntc) \ X(iEnableIntc) \ X(DisableIntc) \ X(iDisableIntc) \ X(EnableDmac) \ X(iEnableDmac) \ X(DisableDmac) \ X(iDisableDmac) \ \ X(SifStopModule) \ X(SifLoadModule) \ X(SifInitRpc) \ X(SifBindRpc) \ X(SifCallRpc) \ X(SifRegisterRpc) \ X(SifCheckStatRpc) \ X(SifSetRpcQueue) \ X(SifRemoveRpcQueue) \ X(SifRemoveRpc) \ X(sceSifCallRpc) \ X(sceSifSendCmd) \ X(sceRpcGetPacket) \ \ X(fioOpen) \ X(fioClose) \ X(fioRead) \ X(fioWrite) \ X(fioLseek) \ X(fioMkdir) \ X(fioChdir) \ X(fioRmdir) \ X(fioGetstat) \ X(fioRemove) \ \ X(SetGsCrt) \ X(GsSetCrt) \ X(GsGetIMR) \ X(iGsGetIMR) \ X(GsPutIMR) \ X(iGsPutIMR) \ X(SetVSyncFlag) \ X(SetSyscall) \ X(GsSetVideoMode) \ \ X(GetOsdConfigParam) \ X(SetOsdConfigParam) \ X(GetOsdConfigParam2) \ X(SetOsdConfigParam2) \ X(EnableCache) \ X(DisableCache) \ X(SifLoadElfPart) \ X(sceSifLoadElf) \ X(sceSifLoadElfPart) \ X(sceSifLoadModule) \ X(sceSifLoadModuleBuffer) \ \ X(SetupThread) \ X(EndOfHeap) \ X(GetMemorySize) \ X(InitTLB) \ X(Deci2Call) \ X(QueryBootMode) \ X(GetThreadTLS) \ X(Copy) \ X(GetEntryAddress) \ X(RegisterExitHandler) // Stubs #define PS2_STUB_LIST(X) \ /* Std/Libc */ \ X(ret0) \ X(ret1) \ X(reta0) \ X(calloc_r) \ X(free_r) \ X(realloc_r) \ X(memalign_r) \ X(malloc_r) \ X(malloc_extend_top) \ X(malloc_trim_r) \ X(mbtowc_r) \ X(printf_r) \ X(__malloc_lock) \ X(__malloc_unlock) \ X(abs) \ X(__ieee754_rem_pio2f) \ X(__kernel_cosf) \ X(__kernel_sinf) \ X(atan) \ X(atan2) \ X(calloc) \ X(ceil) \ X(close) \ X(cos) \ X(exit) \ X(exp) \ X(fabs) \ X(fclose) \ X(fflush) \ X(floor) \ X(fopen) \ X(fprintf) \ X(fread) \ X(free) \ X(fseek) \ X(fstat) \ X(ftell) \ X(fwrite) \ X(getpid) \ X(log) \ X(log10) \ X(lseek) \ X(malloc) \ X(memalign) \ X(memclr) \ X(memchr) \ X(memcmp) \ X(memcpy) \ X(memmove) \ X(memset) \ X(open) \ X(pow) \ X(printf) \ X(puts) \ X(rand) \ X(read) \ X(realloc) \ X(sin) \ X(snprintf) \ X(sprintf) \ X(sqrt) \ X(srand) \ X(stat) \ X(strcasecmp) \ X(strcat) \ X(strchr) \ X(strcmp) \ X(strcpy) \ X(strlen) \ X(strncat) \ X(strncmp) \ X(strncpy) \ X(strrchr) \ X(strstr) \ X(tan) \ X(vfprintf) \ X(vsprintf) \ X(write) \ X(__divdi3) \ /* PS2 native */ \ X(DmaAddr) \ X(builtin_set_imask) \ X(sceCdRI) \ X(sceCdRM) \ X(sceDevVif0Reset) \ X(sceDevVu0Reset) \ X(sceFsDbChk) \ X(sceFsIntrSigSema) \ X(sceFsSemExit) \ X(sceFsSemInit) \ X(sceFsSigSema) \ X(sceIDC) \ X(sceMpegFlush) \ X(sceRpcFreePacket) \ X(sceRpcGetFPacket) \ X(sceRpcGetFPacket2) \ X(sceSDC) \ X(sceSifCmdIntrHdlr) \ X(sceSifLoadElfPart) \ X(sceSifLoadModule) \ X(sceSifSendCmd) \ X(sceVu0ecossin) \ X(mcCallMessageTypeSe) \ X(mcCheckReadStartConfigFile) \ X(mcCheckReadStartSaveFile) \ X(mcCheckWriteStartConfigFile) \ X(mcCheckWriteStartSaveFile) \ X(mcCreateConfigInit) \ X(mcCreateFileSelectWindow) \ X(mcCreateIconInit) \ X(mcCreateSaveFileInit) \ X(mcDispFileName) \ X(mcDispFileNumber) \ X(mcDispWindowCurSol) \ X(mcDispWindowFoundtion) \ X(mcDisplayFileSelectWindow) \ X(mcDisplaySelectFileInfo) \ X(mcDisplaySelectFileInfoMesCount) \ X(mcGetConfigCapacitySize) \ X(mcGetFileSelectWindowCursol) \ X(mcGetFreeCapacitySize) \ X(mcGetIconCapacitySize) \ X(mcGetIconFileCapacitySize) \ X(mcGetPortSelectDirInfo) \ X(mcGetSaveFileCapacitySize) \ X(mcGetStringEnd) \ X(mcMoveFileSelectWindowCursor) \ X(mcNewCreateConfigFile) \ X(mcNewCreateIcon) \ X(mcNewCreateSaveFile) \ X(mcReadIconData) \ X(mcReadStartConfigFile) \ X(mcReadStartSaveFile) \ X(mcSelectFileInfoInit) \ X(mcSelectSaveFileCheck) \ X(mcSetFileSelectWindowCursol) \ X(mcSetFileSelectWindowCursolInit) \ X(mcSetStringSaveFile) \ X(mcSetTyepWriteMode) \ X(mcWriteIconData) \ X(mcWriteStartConfigFile) \ X(mcWriteStartSaveFile) \ X(mceGetInfoApdx) \ X(mceIntrReadFixAlign) \ X(mceStorePwd) \ X(sceCdApplyNCmd) \ X(sceCdBreak) \ X(sceCdCallback) \ X(sceCdChangeThreadPriority) \ X(sceCdDelayThread) \ X(sceCdDiskReady) \ X(sceCdGetDiskType) \ X(sceCdGetError) \ X(sceCdGetReadPos) \ X(sceCdGetToc) \ X(sceCdInit) \ X(sceCdInitEeCB) \ X(sceCdIntToPos) \ X(sceCdMmode) \ X(sceCdNcmdDiskReady) \ X(sceCdPause) \ X(sceCdPosToInt) \ X(sceCdRead) \ X(sceCdReadChain) \ X(sceCdReadClock) \ X(sceCdReadIOPm) \ X(sceCdSearchFile) \ X(sceCdSeek) \ X(sceCdStInit) \ X(sceCdStPause) \ X(sceCdStRead) \ X(sceCdStResume) \ X(sceCdStSeek) \ X(sceCdStSeekF) \ X(sceCdStStart) \ X(sceCdStStat) \ X(sceCdStStop) \ X(sceCdStandby) \ X(sceCdStatus) \ X(sceCdStop) \ X(sceCdStream) \ X(sceCdSync) \ X(sceCdSyncS) \ X(sceCdTrayReq) \ X(sceClose) \ X(sceDeci2Close) \ X(sceDeci2ExLock) \ X(sceDeci2ExRecv) \ X(sceDeci2ExReqSend) \ X(sceDeci2ExSend) \ X(sceDeci2ExUnLock) \ X(sceDeci2Open) \ X(sceDeci2Poll) \ X(sceDeci2ReqSend) \ X(sceDmaCallback) \ X(sceDmaDebug) \ X(sceDmaGetChan) \ X(sceDmaGetEnv) \ X(sceDmaLastSyncTime) \ X(sceDmaPause) \ X(sceDmaPutEnv) \ X(sceDmaPutStallAddr) \ X(sceDmaRecv) \ X(sceDmaRecvI) \ X(sceDmaRecvN) \ X(sceDmaReset) \ X(sceDmaRestart) \ X(sceDmaSend) \ X(sceDmaSendI) \ X(sceDmaSendM) \ X(sceDmaSendN) \ X(sceDmaSync) \ X(sceDmaSyncN) \ X(sceDmaWatch) \ X(sceFsInit) \ X(sceFsReset) \ X(sceGifPkAddGsAD) \ X(sceGifPkAddGsData) \ X(sceGifPkCloseGifTag) \ X(sceGifPkCnt) \ X(sceGifPkEnd) \ X(sceGifPkInit) \ X(sceGifPkOpenGifTag) \ X(sceGifPkRef) \ X(sceGifPkRefLoadImage) \ X(sceGifPkReset) \ X(sceGifPkReserve) \ X(sceGifPkTerminate) \ X(sceGsExecLoadImage) \ X(sceGsExecStoreImage) \ X(sceGsGetGParam) \ X(sceGsPutDispEnv) \ X(sceGsPutDrawEnv) \ X(sceGsResetGraph) \ X(sceGsResetPath) \ X(sceGsSetDefClear) \ X(sceGsSetDefDBuffDc) \ X(sceGsSetDefDBuff) \ X(sceGsSetDefDispEnv) \ X(sceGsSetDefDrawEnv) \ X(sceGsSetDefDrawEnv2) \ X(sceGsSetDefLoadImage) \ X(sceGsSetDefStoreImage) \ X(sceGsSwapDBuffDc) \ X(sceGsSwapDBuff) \ X(sceGsSyncPath) \ X(sceGsSyncV) \ X(sceGsSyncVCallback) \ X(sceGszbufaddr) \ X(sceVif1PkAddGsAD) \ X(sceVif1PkAlign) \ X(sceVif1PkCall) \ X(sceVif1PkCloseDirectCode) \ X(sceVif1PkCloseGifTag) \ X(sceVif1PkCnt) \ X(sceVif1PkEnd) \ X(sceVif1PkInit) \ X(sceVif1PkOpenDirectCode) \ X(sceVif1PkOpenGifTag) \ X(sceVif1PkReset) \ X(sceVif1PkReserve) \ X(sceVif1PkTerminate) \ X(sceeFontInit) \ X(sceeFontLoadFont) \ X(sceeFontPrintfAt) \ X(sceeFontPrintfAt2) \ X(sceeFontGenerateString) \ X(sceeFontClose) \ X(sceeFontSetColour) \ X(sceeFontSetMode) \ X(sceeFontSetFont) \ X(sceeFontSetScale) \ X(sceIoctl) \ X(sceIpuInit) \ X(sceIpuRestartDMA) \ X(sceIpuStopDMA) \ X(sceIpuSync) \ X(sceLseek) \ X(sceMcChangeThreadPriority) \ X(sceMcChdir) \ X(sceMcClose) \ X(sceMcDelete) \ X(sceMcEnd) \ X(sceMcFlush) \ X(sceMcFormat) \ X(sceMcGetDir) \ X(sceMcGetEntSpace) \ X(sceMcGetInfo) \ X(sceMcGetSlotMax) \ X(sceMcInit) \ X(sceMcMkdir) \ X(sceMcOpen) \ X(sceMcRead) \ X(sceMcRename) \ X(sceMcSeek) \ X(sceMcSetFileInfo) \ X(sceMcSync) \ X(sceMcUnformat) \ X(sceMcWrite) \ X(sceMpegAddBs) \ X(sceMpegAddCallback) \ X(sceMpegAddStrCallback) \ X(sceMpegClearRefBuff) \ X(sceMpegCreate) \ X(sceMpegDelete) \ X(sceMpegDemuxPss) \ X(sceMpegDemuxPssRing) \ X(sceMpegDispCenterOffX) \ X(sceMpegDispCenterOffY) \ X(sceMpegDispHeight) \ X(sceMpegDispWidth) \ X(sceMpegGetDecodeMode) \ X(sceMpegGetPicture) \ X(sceMpegGetPictureRAW8) \ X(sceMpegGetPictureRAW8xy) \ X(sceMpegInit) \ X(sceMpegIsEnd) \ X(sceMpegIsRefBuffEmpty) \ X(sceMpegReset) \ X(sceMpegResetDefaultPtsGap) \ X(sceMpegSetDecodeMode) \ X(sceMpegSetDefaultPtsGap) \ X(sceMpegSetImageBuff) \ X(sceOpen) \ X(scePadEnd) \ X(scePadEnterPressMode) \ X(scePadExitPressMode) \ X(scePadGetButtonMask) \ X(scePadGetDmaStr) \ X(scePadGetFrameCount) \ X(scePadGetModVersion) \ X(scePadGetPortMax) \ X(scePadGetReqState) \ X(scePadGetSlotMax) \ X(scePadGetState) \ X(scePadInfoAct) \ X(scePadInfoComb) \ X(scePadInfoMode) \ X(scePadInfoPressMode) \ X(scePadInit) \ X(scePadInit2) \ X(scePadPortClose) \ X(scePadPortOpen) \ X(scePadRead) \ X(scePadReqIntToStr) \ X(scePadSetActAlign) \ X(scePadSetActDirect) \ X(scePadSetButtonInfo) \ X(scePadSetMainMode) \ X(scePadSetReqState) \ X(scePadSetVrefParam) \ X(scePadSetWarningLevel) \ X(scePadStateIntToStr) \ X(scePrintf) \ X(sceRead) \ X(sceResetttyinit) \ X(sceSSyn_BreakAtick) \ X(sceSSyn_ClearBreakAtick) \ X(sceSSyn_SendExcMsg) \ X(sceSSyn_SendNrpnMsg) \ X(sceSSyn_SendRpnMsg) \ X(sceSSyn_SendShortMsg) \ X(sceSSyn_SetChPriority) \ X(sceSSyn_SetMasterVolume) \ X(sceSSyn_SetOutPortVolume) \ X(sceSSyn_SetOutputAssign) \ X(sceSSyn_SetOutputMode) \ X(sceSSyn_SetPortMaxPoly) \ X(sceSSyn_SetPortVolume) \ X(sceSSyn_SetTvaEnvMode) \ X(sceSdCallBack) \ X(sceSdRemote) \ X(sceSdRemoteInit) \ X(sceSdTransToIOP) \ X(sceSetBrokenLink) \ X(sceSetPtm) \ X(sceSifAddCmdHandler) \ X(sceSifAllocIopHeap) \ X(sceSifAllocSysMemory) \ X(sceSifBindRpc) \ X(sceSifCheckStatRpc) \ X(sceSifDmaStat) \ X(sceSifExecRequest) \ X(sceSifExitCmd) \ X(sceSifExitRpc) \ X(sceSifFreeIopHeap) \ X(sceSifFreeSysMemory) \ X(sceSifGetDataTable) \ X(sceSifGetIopAddr) \ X(sceSifGetNextRequest) \ X(sceSifGetOtherData) \ X(sceSifGetReg) \ X(sceSifGetSreg) \ X(sceSifInitCmd) \ X(sceSifInitIopHeap) \ X(sceSifInitRpc) \ X(sceSifIsAliveIop) \ X(sceSifLoadElf) \ X(sceSifLoadElfPart) \ X(sceSifLoadFileReset) \ X(sceSifLoadIopHeap) \ X(sceSifLoadModuleBuffer) \ X(sceSifRebootIop) \ X(sceSifRegisterRpc) \ X(sceSifRemoveCmdHandler) \ X(sceSifRemoveRpc) \ X(sceSifRemoveRpcQueue) \ X(sceSifResetIop) \ X(sceSifRpcLoop) \ X(sceSifSetCmdBuffer) \ X(sceSifSetDChain) \ X(sceSifSetDma) \ X(isceSifSetDChain) \ X(isceSifSetDma) \ X(sceSifSetIopAddr) \ X(sceSifSetReg) \ X(sceSifSetRpcQueue) \ X(sceSifSetSreg) \ X(sceSifSetSysCmdBuffer) \ X(sceSifStopDma) \ X(sceSifSyncIop) \ X(sceSifWriteBackDCache) \ X(sceSynthSizerLfoTriangle) \ X(sceSynthesizerAmpProcI) \ X(sceSynthesizerAmpProcNI) \ X(sceSynthesizerAssignAllNoteOff) \ X(sceSynthesizerAssignAllSoundOff) \ X(sceSynthesizerAssignHoldChange) \ X(sceSynthesizerAssignNoteOff) \ X(sceSynthesizerAssignNoteOn) \ X(sceSynthesizerCalcEnv) \ X(sceSynthesizerCalcPortamentPitch) \ X(sceSynthesizerCalcTvfCoefAll) \ X(sceSynthesizerCalcTvfCoefF0) \ X(sceSynthesizerCent2PhaseInc) \ X(sceSynthesizerChangeEffectSend) \ X(sceSynthesizerChangeHsPanpot) \ X(sceSynthesizerChangeNrpnCutOff) \ X(sceSynthesizerChangeNrpnLfoDepth) \ X(sceSynthesizerChangeNrpnLfoRate) \ X(sceSynthesizerChangeOutAttrib) \ X(sceSynthesizerChangeOutVol) \ X(sceSynthesizerChangePanpot) \ X(sceSynthesizerChangePartBendSens) \ X(sceSynthesizerChangePartExpression) \ X(sceSynthesizerChangePartHsExpression) \ X(sceSynthesizerChangePartHsPitchBend) \ X(sceSynthesizerChangePartModuration) \ X(sceSynthesizerChangePartPitchBend) \ X(sceSynthesizerChangePartVolume) \ X(sceSynthesizerChangePortamento) \ X(sceSynthesizerChangePortamentoTime) \ X(sceSynthesizerClearKeyMap) \ X(sceSynthesizerClearSpr) \ X(sceSynthesizerCopyOutput) \ X(sceSynthesizerDmaFromSPR) \ X(sceSynthesizerDmaSpr) \ X(sceSynthesizerDmaToSPR) \ X(sceSynthesizerGetPartOutLevel) \ X(sceSynthesizerGetPartial) \ X(sceSynthesizerGetSampleParam) \ X(sceSynthesizerHsMessage) \ X(sceSynthesizerLfoNone) \ X(sceSynthesizerLfoProc) \ X(sceSynthesizerLfoSawDown) \ X(sceSynthesizerLfoSawUp) \ X(sceSynthesizerLfoSquare) \ X(sceSynthesizerReadNoise) \ X(sceSynthesizerReadNoiseAdd) \ X(sceSynthesizerReadSample16) \ X(sceSynthesizerReadSample16Add) \ X(sceSynthesizerReadSample8) \ X(sceSynthesizerReadSample8Add) \ X(sceSynthesizerResetPart) \ X(sceSynthesizerRestorDma) \ X(sceSynthesizerSelectPatch) \ X(sceSynthesizerSendShortMessage) \ X(sceSynthesizerSetMasterVolume) \ X(sceSynthesizerSetRVoice) \ X(sceSynthesizerSetupDma) \ X(sceSynthesizerSetupLfo) \ X(sceSynthesizerSetupMidiModuration) \ X(sceSynthesizerSetupMidiPanpot) \ X(sceSynthesizerSetupNewNoise) \ X(sceSynthesizerSetupReleaseEnv) \ X(sceSynthesizerSetupTruncateTvaEnv) \ X(sceSynthesizerSetupTruncateTvfPitchEnv) \ X(sceSynthesizerSetuptEnv) \ X(sceSynthesizerTonegenerator) \ X(sceSynthesizerTransposeMatrix) \ X(sceSynthesizerTvfProcI) \ X(sceSynthesizerTvfProcNI) \ X(sceSynthesizerWaitDmaFromSPR) \ X(sceSynthesizerWaitDmaToSPR) \ X(sceSynthsizerGetDrumPatch) \ X(sceSynthsizerGetMeloPatch) \ X(sceSynthsizerLfoNoise) \ X(sceTtyHandler) \ X(sceTtyInit) \ X(sceTtyRead) \ X(sceTtyWrite) \ X(sceVpu0Reset) \ X(sceVu0AddVector) \ X(sceVu0ApplyMatrix) \ X(sceVu0CameraMatrix) \ X(sceVu0ClampVector) \ X(sceVu0ClipAll) \ X(sceVu0ClipScreen) \ X(sceVu0ClipScreen3) \ X(sceVu0CopyMatrix) \ X(sceVu0CopyVector) \ X(sceVu0CopyVectorXYZ) \ X(sceVu0DivVector) \ X(sceVu0DivVectorXYZ) \ X(sceVu0DropShadowMatrix) \ X(sceVu0FTOI0Vector) \ X(sceVu0FTOI4Vector) \ X(sceVu0ITOF0Vector) \ X(sceVu0ITOF12Vector) \ X(sceVu0ITOF4Vector) \ X(sceVu0InnerProduct) \ X(sceVu0InterVector) \ X(sceVu0InterVectorXYZ) \ X(sceVu0InversMatrix) \ X(sceVu0LightColorMatrix) \ X(sceVu0MulMatrix) \ X(sceVu0MulVector) \ X(sceVu0NormalLightMatrix) \ X(sceVu0Normalize) \ X(sceVu0OuterProduct) \ X(sceVu0RotMatrix) \ X(sceVu0RotMatrixX) \ X(sceVu0RotMatrixY) \ X(sceVu0RotMatrixZ) \ X(sceVu0RotTransPers) \ X(sceVu0RotTransPersN) \ X(sceVu0ScaleVector) \ X(sceVu0ScaleVectorXYZ) \ X(sceVu0SubVector) \ X(sceVu0TransMatrix) \ X(sceVu0TransposeMatrix) \ X(sceVu0UnitMatrix) \ X(sceVu0ViewScreenMatrix) \ X(sceWrite) \ /* Game/middleware */ // Test hooks: override pad input for scePadRead. #define PS2_TEST_HOOK_LIST(X) \ X(setPadOverrideState, (uint16_t buttons, uint8_t lx, uint8_t ly, \ uint8_t rx, uint8_t ry)) \ X(clearPadOverrideState, (void))