mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Merge pull request #2561 from unknownbrackets/ccc
Add a hack/stub for sceCccUTF8toSJIS(), some other stubs
This commit is contained in:
commit
0a4cd1b82a
10 changed files with 91 additions and 35 deletions
|
@ -180,9 +180,9 @@ const HLEFunction KDebugForKernel[] =
|
|||
{0xE6554FDA, 0, "sceKernelRegisterDebugRead"},
|
||||
{0xB9C643C9, 0, "sceKernelDebugEcho"},
|
||||
{0x7D1C74F0, 0, "sceKernelDebugEchoSet"},
|
||||
{0x24C32559, 0, "KDebugForKernel_24C32559"},
|
||||
{0x24C32559, 0, "sceKernelDipsw"},
|
||||
{0xD636B827, 0, "sceKernelRemoveByDebugSection"},
|
||||
{0x5282DD5E, 0, "KDebugForKernel_5282DD5E"},
|
||||
{0x5282DD5E, 0, "sceKernelDipswSet"},
|
||||
{0x9F8703E4, 0, "KDebugForKernel_9F8703E4"},
|
||||
{0x333DCEC7, 0, "KDebugForKernel_333DCEC7"},
|
||||
{0xE892D9A1, 0, "KDebugForKernel_E892D9A1"},
|
||||
|
|
|
@ -36,7 +36,7 @@ const HLEFunction sceAudiocodec[] =
|
|||
{0x8ACA11D5, 0, "sceAudiocodecGetInfo"},
|
||||
{0x3A20A200, 0, "sceAudiocodecGetEDRAM"},
|
||||
{0x29681260, 0, "sceAudiocodecReleaseEDRAM"},
|
||||
{0x9D3F790C, 0, "sceAudiocodeCheckNeedMem"},
|
||||
{0x9D3F790C, 0, "sceAudiocodecCheckNeedMem"},
|
||||
};
|
||||
|
||||
void Register_sceAudiocodec()
|
||||
|
|
|
@ -18,52 +18,83 @@
|
|||
#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)
|
||||
int sceCccSetTable(u32 jis2ucs, u32 ucs2jis)
|
||||
{
|
||||
// Both tables jis2ucs and ucs2jis have a size of 0x20000 bytes
|
||||
ERROR_LOG_REPORT(HLE, "UNIMPL sceCccSetTable");
|
||||
ERROR_LOG_REPORT(HLE, "UNIMPL sceCccSetTable(%08x, %08x)", jis2ucs, ucs2jis);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceCccSJIStoUTF16(int dstUTF16, int dstSize, int srcSJIS)
|
||||
int sceCccUTF8toUTF16(u32 dstAddr, int dstSize, u32 srcAddr)
|
||||
{
|
||||
ERROR_LOG_REPORT(HLE, "UNIMPL sceCccSJIStoUTF16");
|
||||
ERROR_LOG_REPORT(HLE, "UNIMPL sceCccUTF8toUTF16(%08x, %d, %08x)", dstAddr, dstSize, srcAddr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceCccUTF16toSJIS()
|
||||
int sceCccUTF8toSJIS(u32 dstAddr, int dstSize, u32 srcAddr)
|
||||
{
|
||||
ERROR_LOG_REPORT(HLE, "UNIMPL sceCccUTF16toSJIS");
|
||||
ERROR_LOG_REPORT(HLE, "UNIMPL sceCccUTF8toSJIS(%08x, %d, %08x)", dstAddr, dstSize, srcAddr);
|
||||
Memory::Memcpy(dstAddr, Memory::GetCharPointer(srcAddr), dstSize);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceCccUTF16toSJIS(u32 dstAddr, int dstSize, u32 srcAddr)
|
||||
{
|
||||
ERROR_LOG_REPORT(HLE, "UNIMPL sceCccUTF16toSJIS(%08x, %d, %08x)", dstAddr, dstSize, srcAddr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceCccSJIStoUTF8(u32 dstAddr, int dstSize, u32 srcAddr)
|
||||
{
|
||||
ERROR_LOG_REPORT(HLE, "UNIMPL sceCccSJIStoUTF8(%08x, %d, %08x)", dstAddr, dstSize, srcAddr);
|
||||
// TODO: Use the tables set in sceCccSetTable()?
|
||||
// Some characters are the same, so let's copy which is better than doing nothing.
|
||||
Memory::Memcpy(dstAddr, Memory::GetCharPointer(srcAddr), dstSize);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceCccSJIStoUTF16(u32 dstAddr, int dstSize, u32 srcAddr)
|
||||
{
|
||||
ERROR_LOG_REPORT(HLE, "UNIMPL sceCccSJIStoUTF16(%08x, %d, %08x)", dstAddr, dstSize, srcAddr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceCccStrlenUTF16(u32 strUTF16)
|
||||
{
|
||||
ERROR_LOG_REPORT(HLE, "UNIMPL sceCccStrlenUTF16(%08x)", strUTF16);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceCccEncodeUTF8(u32 dstAddr, u32 ucs)
|
||||
{
|
||||
ERROR_LOG_REPORT(HLE, "UNIMPL sceCccEncodeUTF8(%08x, U+%04x)", dstAddr, ucs);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceCccEncodeUTF16(u32 dstAddr, u32 ucs)
|
||||
{
|
||||
ERROR_LOG_REPORT(HLE, "UNIMPL sceCccEncodeUTF8(%08x, U+%04x)", dstAddr, ucs);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceCccDecodeUTF8(u32 dstAddrAddr)
|
||||
{
|
||||
ERROR_LOG_REPORT(HLE, "UNIMPL sceCccDecodeUTF8(%08x)", dstAddrAddr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
const HLEFunction sceCcc[] =
|
||||
{
|
||||
{0x00D1378F, WrapI_V<sceCccUTF8toUTF16>, "sceCccUTF8toUTF16"},
|
||||
{0x4BDEB2A8, WrapI_I<sceCccStrlenUTF16>, "sceCccStrlenUTF16"},
|
||||
{0x6F82EE03, WrapI_III<sceCccUTF8toSJIS>, "sceCccUTF8toSJIS"},
|
||||
{0xB4D1CBBF, WrapI_II<sceCccSetTable>, "sceCccSetTable"},
|
||||
{0xBEB47224, WrapI_III<sceCccSJIStoUTF16>, "sceCccSJIStoUTF16"},
|
||||
{0xF1B73D12, WrapI_V<sceCccUTF16toSJIS>, "sceCccUTF16toSJIS"},
|
||||
{0xB4D1CBBF, WrapI_UU<sceCccSetTable>, "sceCccSetTable"},
|
||||
{0x00D1378F, WrapI_UIU<sceCccUTF8toUTF16>, "sceCccUTF8toUTF16"},
|
||||
{0x6F82EE03, WrapI_UIU<sceCccUTF8toSJIS>, "sceCccUTF8toSJIS"},
|
||||
{0xF1B73D12, WrapI_UIU<sceCccUTF16toSJIS>, "sceCccUTF16toSJIS"},
|
||||
{0xA62E6E80, WrapI_UIU<sceCccSJIStoUTF8>, "sceCccSJIStoUTF8"},
|
||||
{0xBEB47224, WrapI_UIU<sceCccSJIStoUTF16>, "sceCccSJIStoUTF16"},
|
||||
{0x4BDEB2A8, WrapI_U<sceCccStrlenUTF16>, "sceCccStrlenUTF16"},
|
||||
{0x92C05851, WrapI_UU<sceCccEncodeUTF8>, "sceCccEncodeUTF8"},
|
||||
{0x8406F469, WrapI_UU<sceCccEncodeUTF16>, "sceCccEncodeUTF16"},
|
||||
{0xc6a8bee2, WrapI_U<sceCccDecodeUTF8>, "sceCccDecodeUTF8"},
|
||||
};
|
||||
|
||||
void Register_sceCcc()
|
||||
|
|
|
@ -43,6 +43,7 @@ u32 sceDmacMemcpy(u32 dst, u32 src, u32 size)
|
|||
const HLEFunction sceDmac[] =
|
||||
{
|
||||
{0x617f3fe6, &WrapU_UUU<sceDmacMemcpy>, "sceDmacMemcpy"},
|
||||
{0xd97f94d8, 0, "sceDmacTryMemcpy"},
|
||||
};
|
||||
|
||||
void Register_sceDmac()
|
||||
|
|
|
@ -1584,11 +1584,17 @@ const HLEFunction SysMemUserForUser[] = {
|
|||
{0x1b4217bc,&WrapV_I<sceKernelSetCompiledSdkVersion603_605>,"sceKernelSetCompiledSdkVersion603_605"},
|
||||
{0x358ca1bb,&WrapV_I<sceKernelSetCompiledSdkVersion606>,"sceKernelSetCompiledSdkVersion606"},
|
||||
{0xfc114573,&WrapI_V<sceKernelGetCompiledSdkVersion>,"sceKernelGetCompiledSdkVersion"},
|
||||
{0x2a3e5280,0,"sceKernelQueryMemoryInfo"},
|
||||
{0xacbd88ca,0,"SysMemUserForUser_ACBD88CA"},
|
||||
{0x945e45da,0,"SysMemUserForUser_945E45DA"},
|
||||
{0xa6848df8,0,"sceKernelSetUsersystemLibWork"},
|
||||
{0x6231a71d,0,"sceKernelSetPTRIG"},
|
||||
{0x39f49610,0,"sceKernelGetPTRIG"},
|
||||
// Obscure raw block API
|
||||
{0xDB83A952,WrapU_UU<GetMemoryBlockPtr>,"SysMemUserForUser_DB83A952"}, // GetMemoryBlockAddr
|
||||
{0x50F61D8A,WrapU_U<FreeMemoryBlock>,"SysMemUserForUser_50F61D8A"}, // FreeMemoryBlock
|
||||
{0xFE707FDF,WrapU_CUUU<AllocMemoryBlock>,"SysMemUserForUser_FE707FDF"}, // AllocMemoryBlock
|
||||
{0xD8DE5C1E,WrapU_V<SysMemUserForUser_D8DE5C1E>,"SysMemUserForUser_D8DE5C1E"}
|
||||
{0xD8DE5C1E,WrapU_V<SysMemUserForUser_D8DE5C1E>,"SysMemUserForUser_D8DE5C1E"},
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -1403,6 +1403,11 @@ const HLEFunction sceMpeg[] =
|
|||
{0xab0e9556,0,"sceMpegAvcDecodeDetailIndex"},
|
||||
{0xcf3547a2,0,"sceMpegAvcDecodeDetail2"},
|
||||
{0x921fcccf,0,"sceMpegGetAvcEsAu"},
|
||||
{0xd4dd6e75,0,"sceMpeg_D4DD6E75"},
|
||||
{0x11cab459,0,"sceMpeg_11CAB459"},
|
||||
{0xc345ded2,0,"sceMpeg_C345DED2"},
|
||||
{0xb27711a8,0,"sceMpeg_B27711A8"},
|
||||
{0x988e9e12,0,"sceMpeg_988E9E12"},
|
||||
};
|
||||
|
||||
void Register_sceMpeg()
|
||||
|
|
|
@ -1293,6 +1293,7 @@ const HLEFunction scePsmfPlayer[] =
|
|||
{0x2D0E4E0A, WrapI_UUU<scePsmfPlayerSetTempBuf>, "scePsmfPlayerSetTempBuf"},
|
||||
{0x76C0F4AE, WrapI_UCI<scePsmfPlayerSetPsmfOffset>, "scePsmfPlayerSetPsmfOffset"},
|
||||
{0xA72DB4F9, WrapI_UCI<scePsmfPlayerSetPsmfOffsetCB>, "scePsmfPlayerSetPsmfOffsetCB"},
|
||||
{0x340c12cb, 0, "scePsmfPlayer_340C12CB"},
|
||||
};
|
||||
|
||||
void Register_scePsmf() {
|
||||
|
|
|
@ -917,6 +917,10 @@ const HLEFunction sceRtc[] =
|
|||
{0x203ceb0d, 0, "sceRtcGetLastReincarnatedTime"},
|
||||
{0x7d1fbed3, &WrapI_UU<sceRtcSetAlarmTick>, "sceRtcSetAlarmTick"},
|
||||
{0xf5fcc995, 0, "sceRtc_F5FCC995"},
|
||||
{0x81fcda34, 0, "sceRtcIsAlarmed"},
|
||||
{0xfb3b18cd, 0, "sceRtcRegisterCallback"},
|
||||
{0x6a676d2d, 0, "sceRtcUnregisterCallback"},
|
||||
{0xc2ddbeb5, 0, "sceRtcGetAlarmTick"},
|
||||
};
|
||||
|
||||
void Register_sceRtc()
|
||||
|
|
|
@ -635,6 +635,11 @@ const HLEFunction sceUtility[] =
|
|||
{0xd23665f4, 0, "sceUtility_D23665F4"},
|
||||
{0xd4c2bd73, 0, "sceUtility_D4C2BD73"},
|
||||
|
||||
{0x06A48659, 0, "sceUtilityRssSubscriberShutdownStart"},
|
||||
{0x4B0A8FE5, 0, "sceUtilityRssSubscriberInitStart"},
|
||||
{0xA084E056, 0, "sceUtilityRssSubscriberUpdate"},
|
||||
{0x2B96173B, 0, "sceUtilityRssSubscriberGetStatus"},
|
||||
|
||||
{0x0e0c27af, 0, "sceUtility_0E0C27AF"},
|
||||
};
|
||||
|
||||
|
|
|
@ -93,6 +93,9 @@ const HLEFunction sceVaudio[] = {
|
|||
{0x67585dfd, WrapU_V<sceVaudioChRelease>, "sceVaudioChRelease"},
|
||||
{0x346FBE94, WrapU_II<sceVaudioSetEffectType>, "sceVaudioSetEffectType"},
|
||||
{0xCBD4AC51, WrapU_I<sceVaudioSetAlcMode>, "sceVaudioSetAlcMode"},
|
||||
{0x504e4745, 0, "sceVaudio_504E4745"},
|
||||
{0x27acc20b, 0, "sceVaudio_27ACC20B"},
|
||||
{0xe8e78dc8, 0, "sceVaudio_E8E78DC8"},
|
||||
};
|
||||
|
||||
void Register_sceVaudio() {
|
||||
|
|
Loading…
Add table
Reference in a new issue