diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f2037a799..6d1384bfb1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -762,6 +762,8 @@ add_library(${CoreLibName} ${CoreLinkType} Core/HLE/sceImpose.h Core/HLE/sceIo.cpp Core/HLE/sceIo.h + Core/HLE/sceJpeg.cpp + Core/HLE/sceJpeg.h Core/HLE/sceKernel.cpp Core/HLE/sceKernel.h Core/HLE/sceKernelAlarm.cpp @@ -796,6 +798,8 @@ add_library(${CoreLibName} ${CoreLinkType} Core/HLE/sceOpenPSID.h Core/HLE/sceP3da.cpp Core/HLE/sceP3da.h + Core/HLE/sceMd5.cpp + Core/HLE/sceMd5.h Core/HLE/sceMp4.cpp Core/HLE/sceMp4.h Core/HLE/sceMp3.cpp diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt index 2e92313dec..95e838aa7d 100644 --- a/Core/CMakeLists.txt +++ b/Core/CMakeLists.txt @@ -38,6 +38,7 @@ set(SRCS HLE/sceHttp.cpp HLE/sceImpose.cpp HLE/sceIo.cpp + HLE/sceJpeg.cpp HLE/sceKernel.cpp HLE/sceKernelAlarm.cpp HLE/sceKernelEventFlag.cpp @@ -55,6 +56,7 @@ set(SRCS HLE/sceNet.cpp HLE/sceNp.cpp HLE/sceP3da.cpp + HLE/sceMd5.cpp HLE/sceMp4.cpp HLE/sceMp3.cpp HLE/scePauth.cpp diff --git a/Core/Core.vcxproj b/Core/Core.vcxproj index c4d8dd55b8..75fd9ac8cd 100644 --- a/Core/Core.vcxproj +++ b/Core/Core.vcxproj @@ -190,6 +190,7 @@ + @@ -214,6 +215,7 @@ + @@ -364,6 +366,7 @@ + @@ -387,6 +390,7 @@ + diff --git a/Core/Core.vcxproj.filters b/Core/Core.vcxproj.filters index e740f2043d..1d7eafeb18 100644 --- a/Core/Core.vcxproj.filters +++ b/Core/Core.vcxproj.filters @@ -186,9 +186,15 @@ HLE\Libraries + + HLE\Libraries + HLE\Libraries + + HLE\Libraries + HLE\Libraries @@ -539,9 +545,15 @@ HLE\Libraries + + HLE\Libraries + HLE\Libraries + + HLE\Libraries + HLE\Libraries diff --git a/Core/HLE/HLETables.cpp b/Core/HLE/HLETables.cpp index 932a8f936b..dd8fe77c69 100644 --- a/Core/HLE/HLETables.cpp +++ b/Core/HLE/HLETables.cpp @@ -62,6 +62,8 @@ #include "sceMp3.h" #include "scePauth.h" #include "sceNp.h" +#include "sceMd5.h" +#include "sceJpeg.h" #define N(s) s @@ -263,7 +265,9 @@ void RegisterAllModules() { Register_sceNp(); Register_sceNpCommerce2(); Register_sceNpService(); - Regester_sceNpAuth(); + Register_sceNpAuth(); + Register_sceMd5(); + Register_sceJpeg(); for (int i = 0; i < numModules; i++) { diff --git a/Core/HLE/sceJpeg.cpp b/Core/HLE/sceJpeg.cpp new file mode 100644 index 0000000000..679d2eb5e3 --- /dev/null +++ b/Core/HLE/sceJpeg.cpp @@ -0,0 +1,120 @@ +// Copyright (c) 2012- PPSSPP Project. + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 2.0 or later versions. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License 2.0 for more details. + +// A copy of the GPL 2.0 should have been included with the program. +// If not, see http://www.gnu.org/licenses/ + +// Official git repository and contact information can be found at +// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. + +#include "HLE.h" + + +int sceJpegDecompressAllImage() +{ + ERROR_LOG(HLE, "UNIMPL sceJpegDecompressAllImage"); + return 0; +} + +int sceJpegMJpegCsc() +{ + ERROR_LOG(HLE, "UNIMPL sceJpegMJpegCsc"); + return 0; +} + +int sceJpegDecodeMJpeg() +{ + ERROR_LOG(HLE, "UNIMPL sceJpegDecodeMJpeg"); + return 0; +} + +int sceJpegDecodeMJpegYCbCrSuccessively() +{ + ERROR_LOG(HLE, "UNIMPL sceJpegDecodeMJpegYCbCrSuccessively"); + return 0; +} + +int sceJpegDeleteMJpeg() +{ + ERROR_LOG(HLE, "UNIMPL sceJpegDeleteMJpeg"); + return 0; +} + +int sceJpegDecodeMJpegSuccessively() +{ + ERROR_LOG(HLE, "UNIMPL sceJpegDecodeMJpegSuccessively"); + return 0; +} + +int sceJpegCsc() +{ + ERROR_LOG(HLE, "UNIMPL sceJpegCsc"); + return 0; +} + +int sceJpegFinishMJpeg() +{ + ERROR_LOG(HLE, "UNIMPL sceJpegFinishMJpeg"); + return 0; +} + +int sceJpegGetOutputInfo() +{ + ERROR_LOG(HLE, "UNIMPL sceJpegGetOutputInfo"); + return 0; +} + +int sceJpegDecodeMJpegYCbCr() +{ + ERROR_LOG(HLE, "UNIMPL sceJpegDecodeMJpegYCbCr"); + return 0; +} + +int sceJpeg_9B36444C() +{ + ERROR_LOG(HLE, "UNIMPL sceJpeg_9B36444C"); + return 0; +} + +int sceJpegCreateMJpeg() +{ + ERROR_LOG(HLE, "UNIMPL sceJpegCreateMJpeg"); + return 0; +} + +int sceJpegInitMJpeg() +{ + ERROR_LOG(HLE, "UNIMPL sceJpegInitMJpeg"); + return 0; +} + + +const HLEFunction sceJpeg[] = +{ + {0x0425B986, WrapI_V, "sceJpegDecompressAllImage"}, + {0x04B5AE02, WrapI_V, "sceJpegMJpegCsc"}, + {0x04B93CEF, WrapI_V, "sceJpegDecodeMJpeg"}, + {0x227662D7, WrapI_V, "sceJpegDecodeMJpegYCbCrSuccessively"}, + {0x48B602B7, WrapI_V, "sceJpegDeleteMJpeg"}, + {0x64B6F978, WrapI_V, "sceJpegDecodeMJpegSuccessively"}, + {0x67F0ED84, WrapI_V, "sceJpegCsc"}, + {0x7D2F3D7F, WrapI_V, "sceJpegFinishMJpeg"}, + {0x8F2BB012, WrapI_V, "sceJpegGetOutputInfo"}, + {0x91EED83C, WrapI_V, "sceJpegDecodeMJpegYCbCr"}, + {0x9B36444C, WrapI_V, "sceJpeg_9B36444C"}, + {0x9D47469C, WrapI_V, "sceJpegCreateMJpeg"}, + {0xAC9E70E6, WrapI_V, "sceJpegInitMJpeg"}, +}; + +void Register_sceJpeg() +{ + RegisterModule("sceJpeg", ARRAY_SIZE(sceJpeg), sceJpeg); +} diff --git a/Core/HLE/sceJpeg.h b/Core/HLE/sceJpeg.h new file mode 100644 index 0000000000..94ce746c12 --- /dev/null +++ b/Core/HLE/sceJpeg.h @@ -0,0 +1,22 @@ +// Copyright (c) 2012- PPSSPP Project. + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 2.0 or later versions. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License 2.0 for more details. + +// A copy of the GPL 2.0 should have been included with the program. +// If not, see http://www.gnu.org/licenses/ + +// Official git repository and contact information can be found at +// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. + +#pragma once + +#include "HLE.h" + +void Register_sceJpeg(); diff --git a/Core/HLE/sceMd5.cpp b/Core/HLE/sceMd5.cpp new file mode 100644 index 0000000000..2cad9214e3 --- /dev/null +++ b/Core/HLE/sceMd5.cpp @@ -0,0 +1,56 @@ +// Copyright (c) 2012- PPSSPP Project. + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 2.0 or later versions. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License 2.0 for more details. + +// A copy of the GPL 2.0 should have been included with the program. +// If not, see http://www.gnu.org/licenses/ + +// Official git repository and contact information can be found at +// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. + +#include "HLE.h" + + +int sceMd5BlockInit(u32 ctxAddr) +{ + ERROR_LOG(HLE, "UNIMPL sceMd5BlockInit(%08x)", ctxAddr); + return 0; +} + +int sceMd5BlockUpdate(u32 ctxAddr, u32 dataPtr, u32 len) +{ + ERROR_LOG(HLE, "UNIMPL sceMd5BlockUpdate(%08x, %08x, %d)", ctxAddr, dataPtr, len); + return 0; +} + +int sceMd5BlockResult(u32 ctxAddr, u32 digestAddr) +{ + ERROR_LOG(HLE, "UNIMPL sceMd5BlockResult(%08x, %08x)", ctxAddr, digestAddr); + return 0; +} + +int sceMd5Digest(u32 dataPtr, u32 len, u32 digestAddr) +{ + ERROR_LOG(HLE, "UNIMPL sceMd5Digest(%08x, %d, %08x)", dataPtr, len, digestAddr); + return 0; +} + +const HLEFunction sceMd5[] = +{ + {0x19884A15, WrapI_U, "sceMd5BlockInit"}, + {0xA30206C2, WrapI_UUU, "sceMd5BlockUpdate"}, + {0x4876AFFF, WrapI_UU, "sceMd5BlockResult"}, + {0x98E31A9E, WrapI_UUU, "sceMd5Digest"}, +}; + +void Register_sceMd5() +{ + RegisterModule("sceMd5", ARRAY_SIZE(sceMd5), sceMd5); +} diff --git a/Core/HLE/sceMd5.h b/Core/HLE/sceMd5.h new file mode 100644 index 0000000000..0f299bc92c --- /dev/null +++ b/Core/HLE/sceMd5.h @@ -0,0 +1,22 @@ +// Copyright (c) 2012- PPSSPP Project. + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 2.0 or later versions. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License 2.0 for more details. + +// A copy of the GPL 2.0 should have been included with the program. +// If not, see http://www.gnu.org/licenses/ + +// Official git repository and contact information can be found at +// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. + +#pragma once + +#include "HLE.h" + +void Register_sceMd5(); diff --git a/Core/HLE/sceNp.cpp b/Core/HLE/sceNp.cpp index edcdf4ef65..7a3dcc0bcc 100644 --- a/Core/HLE/sceNp.cpp +++ b/Core/HLE/sceNp.cpp @@ -51,7 +51,7 @@ const HLEFunction sceNpAuth[] = { {0xA1DE86F8, 0, "sceNpAuth_A1DE86F8"}, }; -void Regester_sceNpAuth() +void Register_sceNpAuth() { RegisterModule("sceNpAuth", ARRAY_SIZE(sceNpAuth), sceNpAuth); } diff --git a/Core/HLE/sceNp.h b/Core/HLE/sceNp.h index f2cc458e87..7985a4d739 100644 --- a/Core/HLE/sceNp.h +++ b/Core/HLE/sceNp.h @@ -20,4 +20,4 @@ void Register_sceNp(); void Register_sceNpCommerce2(); void Register_sceNpService(); -void Regester_sceNpAuth(); \ No newline at end of file +void Register_sceNpAuth(); \ No newline at end of file diff --git a/android/jni/Android.mk b/android/jni/Android.mk index e73e908af2..a0efdcb99c 100644 --- a/android/jni/Android.mk +++ b/android/jni/Android.mk @@ -216,6 +216,7 @@ LOCAL_SRC_FILES := \ $(SRC)/Core/HLE/sceHttp.cpp \ $(SRC)/Core/HLE/sceImpose.cpp \ $(SRC)/Core/HLE/sceIo.cpp \ + $(SRC)/Core/HLE/sceJpeg.cpp \ $(SRC)/Core/HLE/sceKernel.cpp \ $(SRC)/Core/HLE/sceKernelAlarm.cpp \ $(SRC)/Core/HLE/sceKernelEventFlag.cpp \ @@ -230,6 +231,7 @@ LOCAL_SRC_FILES := \ $(SRC)/Core/HLE/sceKernelTime.cpp \ $(SRC)/Core/HLE/sceKernelVTimer.cpp \ $(SRC)/Core/HLE/sceMpeg.cpp \ + $(SRC)/Core/HLE/sceMd5.cpp \ $(SRC)/Core/HLE/sceMp4.cpp \ $(SRC)/Core/HLE/sceMp3.cpp \ $(SRC)/Core/HLE/sceNet.cpp \