diff --git a/CMakeLists.txt b/CMakeLists.txt
index a8fecb0392..202a196a7f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -790,6 +790,8 @@ add_library(${CoreLibName} ${CoreLinkType}
Core/HLE/sceAudiocodec.cpp
Core/HLE/sceAudiocodec.h
Core/HLE/sceAudio.h
+ Core/HLE/sceCcc.h
+ Core/HLE/sceCcc.cpp
Core/HLE/sceChnnlsv.cpp
Core/HLE/sceChnnlsv.h
Core/HLE/sceCtrl.cpp
diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt
index 38643ffa0e..bb185990cf 100644
--- a/Core/CMakeLists.txt
+++ b/Core/CMakeLists.txt
@@ -27,6 +27,7 @@ set(SRCS
HLE/sceAtrac.cpp
HLE/__sceAudio.cpp
HLE/sceAudio.cpp
+ HLE/sceCcc.cpp
HLE/sceChnnlsv.cpp
HLE/sceCtrl.cpp
HLE/sceDeflt.cpp
diff --git a/Core/Core.vcxproj b/Core/Core.vcxproj
index e2fb23c1b0..e95ca005d2 100644
--- a/Core/Core.vcxproj
+++ b/Core/Core.vcxproj
@@ -194,6 +194,7 @@
+
@@ -376,6 +377,7 @@
+
diff --git a/Core/Core.vcxproj.filters b/Core/Core.vcxproj.filters
index bf8e25e7ca..a71b4375b3 100644
--- a/Core/Core.vcxproj.filters
+++ b/Core/Core.vcxproj.filters
@@ -165,6 +165,9 @@
HLE\Libraries
+
+ HLE\Libraries
+
HLE\Libraries
@@ -546,6 +549,9 @@
HLE\Libraries
+
+ HLE\Libraries
+
HLE\Libraries
diff --git a/Core/HLE/HLETables.cpp b/Core/HLE/HLETables.cpp
index 4b2713828b..ce795dfaa9 100644
--- a/Core/HLE/HLETables.cpp
+++ b/Core/HLE/HLETables.cpp
@@ -19,6 +19,7 @@
#include "HLETables.h"
+#include "sceCcc.h"
#include "sceCtrl.h"
#include "sceDisplay.h"
#include "sceHttp.h"
@@ -230,6 +231,7 @@ void RegisterAllModules() {
Register_StdioForUser();
Register_sceHprm();
+ Register_sceCcc();
Register_sceCtrl();
Register_sceDisplay();
Register_sceAudio();
diff --git a/Core/HLE/sceCcc.cpp b/Core/HLE/sceCcc.cpp
new file mode 100644
index 0000000000..32a88eb46d
--- /dev/null
+++ b/Core/HLE/sceCcc.cpp
@@ -0,0 +1,72 @@
+// 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 "Core/HLE/HLE.h"
+#include "Core/Reporting.h"
+
+int sceCccUTF8toUTF16()
+{
+ ERROR_LOG_REPORT(HLE, "UNIMPL sceCccUTF8toUTF16");
+ return 0;
+}
+
+int sceCccStrlenUTF16(int strUTF16)
+{
+ ERROR_LOG_REPORT(HLE, "UNIMPL sceCccStrlenUTF16");
+ return 0;
+}
+
+
+int sceCccUTF8toSJIS(int dstAddr, int dstSize, int srcAddr)
+{
+ ERROR_LOG_REPORT(HLE, "UNIMPL sceCccUTF8toSJIS");
+ return 0;
+}
+
+int sceCccSetTable(int jis2ucs, int ucs2jis)
+{
+ // Both tables jis2ucs and ucs2jis have a size of 0x20000 bytes
+ ERROR_LOG_REPORT(HLE, "UNIMPL sceCccSetTable");
+ return 0;
+}
+
+int sceCccSJIStoUTF16(int dstUTF16, int dstSize, int srcSJIS)
+{
+ ERROR_LOG_REPORT(HLE, "UNIMPL sceCccUTF8toSJIS");
+ return 0;
+}
+
+int sceCccUTF16toSJIS()
+{
+ ERROR_LOG_REPORT(HLE, "UNIMPL sceCccUTF8toUTF16");
+ return 0;
+}
+
+const HLEFunction sceCcc[] =
+{
+ {0x00D1378F, WrapI_V, "sceCccUTF8toUTF16"},
+ {0x4BDEB2A8, WrapI_I, "sceCccStrlenUTF16"},
+ {0x6F82EE03, WrapI_III, "sceCccUTF8toSJIS"},
+ {0xB4D1CBBF, WrapI_II, "sceCccSetTable"},
+ {0xBEB47224, WrapI_III, "sceCccSJIStoUTF16"},
+ {0xF1B73D12, WrapI_V, "sceCccUTF16toSJIS"},
+};
+
+void Register_sceCcc()
+{
+ RegisterModule("sceCcc", ARRAY_SIZE(sceCcc), sceCcc);
+}
diff --git a/Core/HLE/sceCcc.h b/Core/HLE/sceCcc.h
new file mode 100644
index 0000000000..ae20dac87b
--- /dev/null
+++ b/Core/HLE/sceCcc.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_sceCcc();
diff --git a/android/jni/Android.mk b/android/jni/Android.mk
index e21132dfe9..a5599f8c35 100644
--- a/android/jni/Android.mk
+++ b/android/jni/Android.mk
@@ -220,6 +220,7 @@ LOCAL_SRC_FILES := \
$(SRC)/Core/HLE/sceAudio.cpp \
$(SRC)/Core/HLE/sceAudiocodec.cpp \
$(SRC)/Core/HLE/sceChnnlsv.cpp \
+ $(SRC)/Core/HLE/sceCcc.cpp \
$(SRC)/Core/HLE/sceCtrl.cpp \
$(SRC)/Core/HLE/sceDeflt.cpp \
$(SRC)/Core/HLE/sceDisplay.cpp \