mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Use unknown's measured stack clearing amounts in sceLibFont
This commit is contained in:
parent
fd1dcb881f
commit
3e408047d3
1 changed files with 30 additions and 28 deletions
|
@ -1354,35 +1354,37 @@ static int sceFontGetShadowGlyphImage_Clip(u32 fontHandle, u32 charCode, u32 gly
|
|||
return 0;
|
||||
}
|
||||
|
||||
// sceLibFont is a user level library so it can touch the stack. Some games appear to rely a bit of stack
|
||||
// being wiped - although in reality, it won't be wiped with just zeroes..
|
||||
const HLEFunction sceLibFont[] = {
|
||||
{0x67f17ed7, WrapU_UU<sceFontNewLib>, "sceFontNewLib", HLE_CLEAR_STACK_BYTES, 0x590},
|
||||
{0x574b6fbc, WrapI_U<sceFontDoneLib>, "sceFontDoneLib"},
|
||||
{0x48293280, WrapI_UFF<sceFontSetResolution>, "sceFontSetResolution"},
|
||||
{0x27f6e642, WrapI_UU<sceFontGetNumFontList>, "sceFontGetNumFontList"},
|
||||
{0xbc75d85b, WrapI_UUI<sceFontGetFontList>, "sceFontGetFontList"},
|
||||
{0x099ef33c, WrapI_UUU<sceFontFindOptimumFont>, "sceFontFindOptimumFont"},
|
||||
{0x681e61a7, WrapI_UUU<sceFontFindFont>, "sceFontFindFont"},
|
||||
{0x2f67356a, WrapI_V<sceFontCalcMemorySize>, "sceFontCalcMemorySize"},
|
||||
{0x5333322d, WrapI_UUU<sceFontGetFontInfoByIndexNumber>, "sceFontGetFontInfoByIndexNumber"},
|
||||
{0xa834319d, WrapU_UUUU<sceFontOpen>, "sceFontOpen"},
|
||||
{0x57fcb733, WrapU_UCUU<sceFontOpenUserFile>, "sceFontOpenUserFile"},
|
||||
{0xbb8e7fe6, WrapU_UUUU<sceFontOpenUserMemory>, "sceFontOpenUserMemory", HLE_CLEAR_STACK_BYTES, 0x440},
|
||||
{0x3aea8cb6, WrapI_U<sceFontClose>, "sceFontClose"},
|
||||
{0x0da7535e, WrapI_UU<sceFontGetFontInfo>, "sceFontGetFontInfo"},
|
||||
{0xdcc80c2f, WrapI_UUU<sceFontGetCharInfo>, "sceFontGetCharInfo", HLE_CLEAR_STACK_BYTES, 0x100},
|
||||
{0xaa3de7b5, WrapI_UUU<sceFontGetShadowInfo>, "sceFontGetShadowInfo"},
|
||||
{0x5c3e4a9e, WrapI_UUU<sceFontGetCharImageRect>, "sceFontGetCharImageRect"},
|
||||
{0x48b06520, WrapI_UUU<sceFontGetShadowImageRect>, "sceFontGetShadowImageRect"},
|
||||
{0x980f4895, WrapI_UUU<sceFontGetCharGlyphImage>, "sceFontGetCharGlyphImage", HLE_CLEAR_STACK_BYTES, 0x120},
|
||||
{0xca1e6945, WrapI_UUUIIII<sceFontGetCharGlyphImage_Clip>, "sceFontGetCharGlyphImage_Clip"},
|
||||
{0x74b21701, WrapF_IFU<sceFontPixelToPointH>, "sceFontPixelToPointH"},
|
||||
{0xf8f0752e, WrapF_IFU<sceFontPixelToPointV>, "sceFontPixelToPointV"},
|
||||
{0x472694cd, WrapF_IFU<sceFontPointToPixelH>, "sceFontPointToPixelH"},
|
||||
{0x3c4b7e82, WrapF_IFU<sceFontPointToPixelV>, "sceFontPointToPixelV"},
|
||||
{0xee232411, WrapI_UU<sceFontSetAltCharacterCode>, "sceFontSetAltCharacterCode"},
|
||||
{0x568be516, WrapI_UUU<sceFontGetShadowGlyphImage>, "sceFontGetShadowGlyphImage"},
|
||||
{0x5dcf6858, WrapI_UUUIIII<sceFontGetShadowGlyphImage_Clip>, "sceFontGetShadowGlyphImage_Clip"},
|
||||
{0x02d7f94b, WrapI_U<sceFontFlush>, "sceFontFlush"},
|
||||
{ 0x67f17ed7, WrapU_UU<sceFontNewLib>, "sceFontNewLib", HLE_CLEAR_STACK_BYTES, 0x5A0 },
|
||||
{ 0x574b6fbc, WrapI_U<sceFontDoneLib>, "sceFontDoneLib", HLE_CLEAR_STACK_BYTES, 0x2C },
|
||||
{ 0x48293280, WrapI_UFF<sceFontSetResolution>, "sceFontSetResolution" },
|
||||
{ 0x27f6e642, WrapI_UU<sceFontGetNumFontList>, "sceFontGetNumFontList" },
|
||||
{ 0xbc75d85b, WrapI_UUI<sceFontGetFontList>, "sceFontGetFontList", HLE_CLEAR_STACK_BYTES, 0x31C },
|
||||
{ 0x099ef33c, WrapI_UUU<sceFontFindOptimumFont>, "sceFontFindOptimumFont", HLE_CLEAR_STACK_BYTES, 0xF0 },
|
||||
{ 0x681e61a7, WrapI_UUU<sceFontFindFont>, "sceFontFindFont", HLE_CLEAR_STACK_BYTES, 0x40 },
|
||||
{ 0x2f67356a, WrapI_V<sceFontCalcMemorySize>, "sceFontCalcMemorySize" },
|
||||
{ 0x5333322d, WrapI_UUU<sceFontGetFontInfoByIndexNumber>, "sceFontGetFontInfoByIndexNumber", HLE_CLEAR_STACK_BYTES, 0x20 },
|
||||
{ 0xa834319d, WrapU_UUUU<sceFontOpen>, "sceFontOpen", HLE_CLEAR_STACK_BYTES, 0x460 },
|
||||
{ 0x57fcb733, WrapU_UCUU<sceFontOpenUserFile>, "sceFontOpenUserFile" },
|
||||
{ 0xbb8e7fe6, WrapU_UUUU<sceFontOpenUserMemory>, "sceFontOpenUserMemory"/*, HLE_CLEAR_STACK_BYTES, 0x440 from JPCSP*/ },
|
||||
{ 0x3aea8cb6, WrapI_U<sceFontClose>, "sceFontClose", HLE_CLEAR_STACK_BYTES, 0x54 },
|
||||
{ 0x0da7535e, WrapI_UU<sceFontGetFontInfo>, "sceFontGetFontInfo" },
|
||||
{ 0xdcc80c2f, WrapI_UUU<sceFontGetCharInfo>, "sceFontGetCharInfo", HLE_CLEAR_STACK_BYTES, 0x110 },
|
||||
{ 0xaa3de7b5, WrapI_UUU<sceFontGetShadowInfo>, "sceFontGetShadowInfo", HLE_CLEAR_STACK_BYTES, 0x150 },
|
||||
{ 0x5c3e4a9e, WrapI_UUU<sceFontGetCharImageRect>, "sceFontGetCharImageRect", HLE_CLEAR_STACK_BYTES, 0x120 },
|
||||
{ 0x48b06520, WrapI_UUU<sceFontGetShadowImageRect>, "sceFontGetShadowImageRect", HLE_CLEAR_STACK_BYTES, 0x150 },
|
||||
{ 0x980f4895, WrapI_UUU<sceFontGetCharGlyphImage>, "sceFontGetCharGlyphImage", HLE_CLEAR_STACK_BYTES, 0x120 },
|
||||
{ 0xca1e6945, WrapI_UUUIIII<sceFontGetCharGlyphImage_Clip>, "sceFontGetCharGlyphImage_Clip", HLE_CLEAR_STACK_BYTES, 0x130 },
|
||||
{ 0x74b21701, WrapF_IFU<sceFontPixelToPointH>, "sceFontPixelToPointH", HLE_CLEAR_STACK_BYTES, 0x10 },
|
||||
{ 0xf8f0752e, WrapF_IFU<sceFontPixelToPointV>, "sceFontPixelToPointV", HLE_CLEAR_STACK_BYTES, 0x10 },
|
||||
{ 0x472694cd, WrapF_IFU<sceFontPointToPixelH>, "sceFontPointToPixelH" },
|
||||
{ 0x3c4b7e82, WrapF_IFU<sceFontPointToPixelV>, "sceFontPointToPixelV" },
|
||||
{ 0xee232411, WrapI_UU<sceFontSetAltCharacterCode>, "sceFontSetAltCharacterCode" },
|
||||
{ 0x568be516, WrapI_UUU<sceFontGetShadowGlyphImage>, "sceFontGetShadowGlyphImage", HLE_CLEAR_STACK_BYTES, 0x160 },
|
||||
{ 0x5dcf6858, WrapI_UUUIIII<sceFontGetShadowGlyphImage_Clip>, "sceFontGetShadowGlyphImage_Clip", HLE_CLEAR_STACK_BYTES, 0x170 },
|
||||
{ 0x02d7f94b, WrapI_U<sceFontFlush>, "sceFontFlush" },
|
||||
};
|
||||
|
||||
void Register_sceFont() {
|
||||
|
|
Loading…
Add table
Reference in a new issue