summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrapheneCt2021-07-15 18:41:46 -0400
committerReiko Asakura2021-07-15 19:07:55 -0400
commit68c1219eb513acc2f24b2d41f84ded4cc2e9fab6 (patch)
treed96eb4a38a4eef4e6113c79285c93b2a27abbc9a
parentAdd prototype for sceKernelIsAccessibleRangeProc (diff)
downloadvds-libraries-68c1219eb513acc2f24b2d41f84ded4cc2e9fab6.tar.gz
Update ScePaf
-rw-r--r--include/user/paf.h3
-rw-r--r--include/user/paf/common.h332
-rw-r--r--include/user/paf/graphics.h275
-rw-r--r--include/user/paf/lowlayer.h25
-rw-r--r--include/user/paf/misc.h378
-rw-r--r--include/user/paf/stdc.h15
-rw-r--r--include/user/paf/thread.h21
-rw-r--r--include/user/paf/toplevel.h108
-rw-r--r--include/user/paf/widget.h198
-rw-r--r--nids/360/ScePaf.yml230
10 files changed, 1361 insertions, 224 deletions
diff --git a/include/user/paf.h b/include/user/paf.h
index b0cc028..944616d 100644
--- a/include/user/paf.h
+++ b/include/user/paf.h
@@ -59,9 +59,11 @@ namespace paf {
namespace graphics {
+ class TextObj;
class MemoryPool;
class Surface;
class Texture;
+ class DrawQueue;
}
namespace datetime {
@@ -102,6 +104,7 @@ namespace paf {
#include <paf/misc.h>
#include <paf/resource.h>
#include <paf/thread.h>
+#include <paf/lowlayer.h>
#endif /* _VDSUITE_USER_PAF_H */
diff --git a/include/user/paf/common.h b/include/user/paf/common.h
index e3ecda5..67d6e5e 100644
--- a/include/user/paf/common.h
+++ b/include/user/paf/common.h
@@ -10,27 +10,12 @@
namespace paf {
- class String;
- class WString;
-
namespace widget {
class Widget;
}
- namespace common {
-
- enum CesFlags
- {
- AllowIllegalCode = 0x2,
- AllowOutOfCodeRange = 0x4,
- AllowInvalidEncode = 0x8,
- AllowSrcBufferEnd = 0x10
- };
-
- static paf::widget::Widget *WidgetStateTransition(SceFloat32 delay, paf::widget::Widget *widget, SceUInt32 animationId, SceBool disableOnEnd, SceBool skipAnimation);
- static paf::widget::Widget *WidgetStateTransitionReverse(SceFloat32 delay, paf::widget::Widget *widget, SceUInt32 animationId, SceBool disableOnEnd, SceBool skipAnimation);
- }
-
+ class String;
+ class WString;
class String
{
@@ -46,7 +31,7 @@ namespace paf {
~String()
{
- if (length != 0 && *data != 0)
+ if (length != 0 && data != &null)
delete data;
}
@@ -60,65 +45,150 @@ namespace paf {
SceSSize ToWString(paf::WString *dst, SceUInt32 flags);
- String *Set(const char *s, SceSize srcLength)
+ SceVoid MemsizeFormat(SceSize memsize);
+
+ SceVoid Setf(const char *format, ...);
+
+ SceVoid Set(const char* c, SceInt32 len)
{
- if (data == s)
- return this;
+ Clear();
- if (*data != 0)
- delete data;
+ if (!len)
+ {
+ SetEmpty();
- if (srcLength == 0 || s == SCE_NULL || s[0] == 0) {
- String();
- return this;
+ return;
}
- data = new char[srcLength + 1];
- length = srcLength;
- sce_paf_memcpy(data, s, length);
- data[length] = 0;
+ Copy(c, len);
+ }
- return this;
- };
+ SceVoid Set(const char* c)
+ {
+ SceInt32 len = sce_paf_strlen(c);
+
+ Clear();
+
+ if (!len)
+ {
+ SetEmpty();
+
+ return;
+ }
+
+ Copy(c, len);
+ }
+
+ SceVoid Clear()
+ {
+ if (IsEmpty())
+ {
+ return;
+ }
+
+ delete data;
- String *Set(const char *s)
+ SetEmpty();
+ }
+
+ String *operator=(const char* c)
{
- Set(s, sce_paf_strlen(s));
+ Clear();
+
+ Copy(c, sce_paf_strlen(c));
return this;
- };
+ }
String *operator=(const String *s)
{
- if (data == s->data)
- return this;
+ Clear();
- if (s->length == 0) {
- String();
- return this;
+ Copy(s->data, s->length);
+ return this;
+ }
+
+ String operator+(const String *s) const
+ {
+ SceInt32 len1 = length;
+ SceInt32 len2 = s->length;
+
+ if (!len1 && !len2)
+ {
+ String ret;
+ return ret;
}
- data = new char[s->length + 1];
- length = s->length;
- sce_paf_memcpy(data, s->data, s->length + 1);
+ char* newptr = new char[len1 + len2 + 1];
- return this;
+ if (newptr == SCE_NULL)
+ {
+ String ret;
+ return ret;
+ }
+
+ sce_paf_memcpy(newptr, data, sizeof(char) * len1);
+ sce_paf_memcpy(&newptr[len1], s->data, sizeof(char) * (s->length + 1));
+
+ String ret(newptr, len1 + len2);
+ delete newptr;
+
+ return ret;
}
- String *operator+(const String *s) const
+ String operator+(const char* c) const
{
- String *newStr = new String;
+ SceInt32 len1 = length;
+ SceInt32 len2 = sce_paf_strlen(c);
- if (!length && !s->length)
+ char* newptr = new char[len1 + len2 + 1];
+
+ if (newptr == SCE_NULL)
{
- return newStr;
+ String ret;
+ return ret;
}
- newStr->data = new char[s->length + length + 1];
- newStr->length = s->length + length;
- sce_paf_memcpy(newStr->data, data, length);
- sce_paf_memcpy(&newStr->data[length], s->data, s->length + 1);
- newStr->data[newStr->length] = 0;
- return newStr;
+ sce_paf_memcpy(newptr, data, sizeof(char) * len1);
+ sce_paf_memcpy(&newptr[len1], c, sizeof(char) * (len2 + 1));
+
+ String ret(newptr, len1 + len2);
+ delete newptr;
+
+ return ret;
+ }
+
+ String *operator+=(const String *s)
+ {
+ char* newptr = SCE_NULL;
+ SceInt32 len1 = length;
+
+ newptr = new char[length + s->length + 1];
+
+ sce_paf_memcpy(newptr, data, len1);
+ sce_paf_memcpy(&newptr[len1], s->data, s->length + 1);
+
+ Clear();
+ Set(newptr, len1 + s->length);
+ delete newptr;
+
+ return this;
+ }
+
+ String *operator+=(const char* c)
+ {
+ SceInt32 len1 = length;
+ SceInt32 len2 = sce_paf_strlen(c);
+
+ char* newptr = new char[len1 + len2 + 1];
+
+ sce_paf_memcpy(newptr, data, len1);
+ sce_paf_memcpy(&newptr[len1], c, len2 + 1);
+
+ Clear();
+ Set(newptr, len1 + len2);
+ delete newptr;
+
+ return this;
}
SceBool operator==(const String *s) const
@@ -126,20 +196,90 @@ namespace paf {
if (s->length != length)
return SCE_FALSE;
- if (!sce_paf_strncmp(s->data, data, length))
+ if (sce_paf_strncmp(data, s->data, length))
+ return SCE_FALSE;
+
+ return SCE_TRUE;
+ }
+
+ SceBool operator==(const char* rc) const
+ {
+ if (sce_paf_strlen(rc) != length)
+ return SCE_FALSE;
+
+ if (sce_paf_strncmp(data, rc, length))
+ return SCE_FALSE;
+
+ return SCE_TRUE;
+ }
+
+ SceBool operator<(const String *s) const
+ {
+ return sce_paf_strcmp(data, s->data) < 0;
+ }
+
+ SceBool operator<(const char* c) const
+ {
+ return sce_paf_strcmp(data, c) < 0;
+ }
+
+ SceBool operator>(const String *s) const
+ {
+ return sce_paf_strcmp(data, s->data) > 0;
+ }
+
+ SceBool operator>(const char* c) const
+ {
+ return sce_paf_strcmp(data, c) > 0;
+ }
+
+ String *Append(const char* c, SceInt32 len2)
+ {
+ SceInt32 len1 = length;
+
+ char *newptr = new char[len1 + len2 + 1];
+
+ sce_paf_memcpy(newptr, data, len1);
+ sce_paf_memcpy(&newptr[len1], c, len2);
+
+ Clear();
+ Set(newptr, len1 + len2);
+ delete newptr;
+
+ return this;
+ }
+
+ SceVoid Copy(const char* c, SceInt32 cLength)
+ {
+ if (!cLength)
+ {
+ return;
+ }
+
+ length = cLength;
+
+ data = new char[length + 1];
+
+ sce_paf_memcpy(data, c, cLength);
+ data[cLength] = 0;
+ }
+
+ SceBool IsEmpty() const
+ {
+ if (data == &null && length == 0)
return SCE_TRUE;
else
return SCE_FALSE;
}
- SceVoid Clear()
+ SceVoid SetEmpty()
{
- if (length != 0 && data != SCE_NULL) {
- delete data;
- String();
- }
+ data = &null;
+ length = 0;
}
+ static char null;
+
char *data;
SceSize length;
@@ -153,12 +293,12 @@ namespace paf {
{
public:
- WString() : data(SCE_NULL), length(0)
+ WString() : data(&null), length(0)
{
}
- WString(const SceWChar16 *s, SceSize srcLength) : data(SCE_NULL), length(0)
+ WString(const SceWChar16 *s, SceSize srcLength) : data(&null), length(0)
{
if (srcLength == 0 || s == SCE_NULL || s[0] == 0) {
return;
@@ -172,7 +312,7 @@ namespace paf {
return;
}
- WString(const SceWChar16 *s) : data(SCE_NULL), length(0)
+ WString(const SceWChar16 *s) : data(&null), length(0)
{
SceSize srcLength = sce_paf_wcslen((wchar_t*)s);
@@ -190,7 +330,7 @@ namespace paf {
~WString()
{
- if (length != 0 && data != SCE_NULL)
+ if (length != 0 && data != &null)
delete data;
}
@@ -209,11 +349,11 @@ namespace paf {
if (data == s)
return this;
- if (data != SCE_NULL)
+ if (data != &null)
delete data;
if (srcLength == 0 || s == SCE_NULL || s[0] == 0) {
- data = SCE_NULL;
+ data = &null;
length = 0;
return this;
}
@@ -232,13 +372,29 @@ namespace paf {
return this;
};
+ WString *Append(const SceWChar16 *c, SceInt32 len2)
+ {
+ SceInt32 len1 = length;
+
+ SceWChar16 *newptr = new SceWChar16[len1 + len2 + 1];
+
+ sce_paf_wmemcpy((wchar_t *)newptr, (wchar_t *)data, len1);
+ sce_paf_wmemcpy((wchar_t *)&newptr[len1], (wchar_t *)c, len2);
+
+ Clear();
+ Set(newptr, len1 + len2);
+ delete newptr;
+
+ return this;
+ }
+
WString *operator=(const WString *s)
{
if (data == s->data)
return this;
if (s->length == 0) {
- data = SCE_NULL;
+ data = &null;
length = 0;
return this;
}
@@ -280,13 +436,15 @@ namespace paf {
SceVoid Clear()
{
- if (length != 0 && data != SCE_NULL) {
+ if (length != 0 && data != &null) {
delete data;
length = 0;
- data = SCE_NULL;
+ data = &null;
}
}
+ static SceWChar16 null;
+
SceWChar16 *data;
SceSize length;
@@ -295,21 +453,49 @@ namespace paf {
SceUInt32 m_work;
};
+ class SWString
+ {
+ public:
+
+ SWString();
+
+ SWString(const char *str);
+
+ SWString(const SceWChar16 *str);
+
+ SWString(String *src);
+
+ SWString(WString *src);
+
+ ~SWString();
+
+ String string;
+ WString wstring;
+ };
+
namespace common {
class Utils
{
public:
- typedef void(*MainThreadTaskEntryFunction)(void *pArgBlock);
-
- Utils();
+ enum CesFlags
+ {
+ AllowIllegalCode = 0x2,
+ AllowOutOfCodeRange = 0x4,
+ AllowInvalidEncode = 0x8,
+ AllowSrcBufferEnd = 0x10
+ };
- ~Utils();
+ typedef void(*MainThreadTaskEntryFunction)(void *pArgBlock);
static SceVoid AddMainThreadTask(MainThreadTaskEntryFunction entry, ScePVoid pArgBlock);
static SceVoid RemoveMainThreadTask(MainThreadTaskEntryFunction entry, ScePVoid pArgBlock);
+
+ static paf::widget::Widget *WidgetStateTransition(SceFloat32 animationSpeed, paf::widget::Widget *widget, SceUInt32 animationId, SceBool disableOnEnd, SceBool skipAnimation);
+
+ static paf::widget::Widget *WidgetStateTransitionReverse(SceFloat32 animationSpeed, paf::widget::Widget *widget, SceUInt32 animationId, SceBool disableOnEnd, SceBool skipAnimation);
};
}
diff --git a/include/user/paf/graphics.h b/include/user/paf/graphics.h
index 101a94a..4338e43 100644
--- a/include/user/paf/graphics.h
+++ b/include/user/paf/graphics.h
@@ -14,10 +14,74 @@ namespace paf {
namespace graphics {
+ class TextObj
+ {
+ public:
+
+ //ScePafGraphics_F201F98D c1
+ //ScePafGraphics_29013890 c2
+ TextObj(SceInt32 *flags);
+
+ //ScePafGraphics_FA7B17C2 d2
+ //ScePafGraphics_8021A2B3 d0
+ //ScePafGraphics_919B8983 d1
+ virtual ~TextObj();
+
+ virtual SceBool ContainsType(const char *pTypeName);
+ virtual char *GetType();
+ virtual SceInt32 unkFun_08();
+ virtual SceInt32 unkFun_0C(); // D0, why is it here?
+ virtual SceInt32 unkFun_10();
+ virtual SceInt32 unkFun_14();
+ virtual SceInt32 unkFun_18(); // test
+ virtual SceInt32 unkFun_1C();
+ virtual SceInt32 unkFun_20();
+ virtual SceInt32 unkFun_24();
+ virtual SceInt32 unkFun_28();
+ virtual SceInt32 unkFun_2C();
+ virtual SceInt32 unkFun_30();
+ virtual SceInt32 unkFun_34();
+ virtual SceInt32 unkFun_38(); // test
+ virtual SceInt32 unkFun_3C(); // test
+ virtual SceInt32 unkFun_40();
+ virtual SceInt32 unkFun_44();
+
+ //ScePafGraphics_1BDA4425
+ SceInt32 GetLabel(WString *pText);
+
+ //ScePafGraphics_AE415C90
+ SceInt32 SetLabel(WString *pText);
+
+ //ScePafGraphics_DC2C405E
+ SceInt32 SetPlaceholderLabel(WString *pText);
+
+ //ScePafGraphics_D3BEDF03
+ SceInt32 GetPlaceholderLabel(WString *pText);
+
+ SceInt32 GetLength(SceUInt32 *pLength);
+
+ //ScePafGraphics_67094D42
+ SceInt32 GetDataAndLength(SceWChar16 **ppData, SceUInt32 *pLength);
+
+ static SceInt32 *s_defaultTextObjFlags;
+
+ private:
+
+ SceUChar8 unk_00[0x58];
+
+ };
+
class MemoryPool
{
public:
+ enum MemoryType
+ {
+ MemoryType_UserNC,
+ MemoryType_CDRAM,
+ MemoryType_Shared,
+ };
+
class InitParam
{
public:
@@ -40,17 +104,10 @@ namespace paf {
virtual int unkf2();
virtual int unkf3();
- enum MemoryType
- {
- MemoryType_UserNC,
- MemoryType_CDRAM,
- MemoryType_Shared,
- };
-
enum MemoryTypeSpecial
{
MemoryTypeSpecial_Unused,
- MemoryTypeSpecial_Unk0xCF08060,
+ MemoryTypeSpecial_Tool,
MemoryTypeSpecial_Phycont
};
@@ -59,7 +116,7 @@ namespace paf {
GpuMapType_Normal,
GpuMapType_VertexUsse,
GpuMapType_FragmentUsse,
- GpuMapType_NoMap,
+ GpuMapType_NoMap
};
class MemBlockOptParam
@@ -90,6 +147,47 @@ namespace paf {
{
public:
+ class GxmTexture
+ {
+ public:
+
+ SceGxmTexture *texture;
+ SceInt32 unk_04;
+ };
+
+ class Base
+ {
+ public:
+
+ Base *prev;
+ Base *next;
+ SceInt32 lock;
+ SceUInt16 width;
+ SceUInt16 height;
+ SceInt32 texType; // linear/swizzled/tiled
+ SceInt32 unk_14;
+ SceInt32 unk_18;
+ SceUInt16 widthAligned;
+ SceUInt16 heightAligned;
+ SceFloat32 xScale;
+ SceFloat32 yScale;
+ SceInt32 pixels;
+ SceUInt16 width3;
+ SceUInt16 unk_3e;
+ SceInt32 unk_30;
+ GxmTexture *texture;
+ SceGxmTextureFilter magFilter;
+ SceGxmTextureFilter minFilter;
+ SceGxmTextureFilter mipFilter;
+ SceGxmTextureAddrMode uaddrMode;
+ SceGxmTextureAddrMode vaddrMode;
+ SceUInt32 lodBias;
+ SceInt32 unk_50;
+ SceInt32 unk_54;
+ SceInt32 unk_58;
+ ScePVoid gxmData;
+ };
+
Surface(MemoryPool *pMemPool, SceUInt32 width, SceUInt32 height, SceUInt32 format, SceUInt32 orderType, SceInt32 a7, SceUInt32 numLevel, SceInt32 a9);
virtual ~Surface();
@@ -109,9 +207,31 @@ namespace paf {
void operator delete(void*);
+ //ScePafGraphics_E57728C4
+ static SceInt32 Copy(Surface *dst, SceInt32 a2, Surface *src, SceUInt32 srcOrderType, SceSize copySize, SceInt32 a6 = -1);
+
+ SceInt32 GetLock();
+
+ //ScePafGraphics_879B135D
+ ScePVoid GetGxmData();
+
+ //ScePafGraphics_D075A824
+ SceInt32 ReplaceData(SceGxmTexture **tex, const ScePVoid data);
+
+ //ScePafGraphics_3B5327DF
+ SceUInt32 GetPixelCount();
+
+ //ScePafGraphics_804E92B1
+ SceInt32 ApplyFilters();
+
+ SceInt32 texFormat;
+ SceInt32 unk_08;
+ SceInt32 unk_0C;
+ Base base;
+
private:
- SceUChar8 m_work[0x44];
+ SceUChar8 m_work[0x24];
};
@@ -123,14 +243,145 @@ namespace paf {
~Texture() { };
+ static SceVoid CreateFromFile(Texture *tex, MemoryPool *memPool, paf::Misc::OpenResult *file, ScePVoid fwOpt = SCE_NULL);
+
+ static SceVoid CreateFromMemory(Texture *tex, MemoryPool *memPool, ScePVoid ptr, SceInt32 unused_1, SceSize size, SceInt32 unused_2 = 0, ScePVoid fwOpt = SCE_NULL);
+
Surface *texSurface;
- private:
+ ScePVoid unk;
+ };
+
+ class FwGraphicsContext
+ {
+ public:
+
+ class ShaderPatcher {
+ public:
+
+ SceGxmShaderPatcher *shaderPatcher;
+
+ //more?
+ };
+
+ enum Target
+ {
+ Target_None,
+ Target_Front,
+ Target_Back
+ };
+
+ static FwGraphicsContext *GetFwGraphicsContext();
+
+ //ScePafGraphics_E4B3B1D2
+ SceVoid Finish();
+
+ //ScePafGraphics_751FC8E6
+ SceInt32 BeginScene(const SceGxmRenderTarget *renderTarget, SceGxmSyncObject *fragmentSyncObject, const SceGxmColorSurface *colorSurface, const SceGxmDepthStencilSurface *depthStencilSurface, SceUInt32 flags);
+
+ //ScePafGraphics_D5E30C64
+ SceInt32 EndScene(const SceGxmNotification *vertexNotification, const SceGxmNotification *fragmentNotification);
+
+ //ScePafGraphics_6E7B77AC
+ SceVoid SetWClampValue(float clampValue);
+
+ //ScePafGraphics_84619C66
+ SceVoid SetPolygonMode(SceGxmPolygonMode mode, SceUInt32 target);
+
+ //ScePafGraphics_D9EA2729
+ SceVoid SetPointLineWidth(SceFloat32 width, SceUInt32 target);
+
+ //ScePafGraphics_9EAD43B5
+ SceVoid SetPointLineWidth2(SceFloat32 width, SceUInt32 target);
+
+ //ScePafGraphics_DAC195AC
+ SceVoid SetStencilFunc(SceGxmStencilFunc func, SceGxmStencilOp stencilFail, SceGxmStencilOp depthFail, SceGxmStencilOp depthPass, uint8_t compareMask, uint8_t writeMask, SceUInt32 target);
+
+ //ScePafGraphics_722A4987
+ SceVoid SetCullMode(SceGxmCullMode mode);
+
+ //ScePafGraphics_7EC1D482
+ SceVoid SetDepthFunc(SceGxmDepthFunc depthFunc, SceUInt32 target);
+
+ //ScePafGraphics_2AE23377
+ SceVoid SetDepthWriteEnable(SceGxmDepthWriteMode enable, SceUInt32 target);
- SceUChar8 unk[0x4];
+ //ScePafGraphics_5F8FDEC7
+ SceVoid ResetParam(SceUInt32 targetParam);
+ SceUChar8 unk_000[0x61C];
+
+ ShaderPatcher *shaderPatcher;
+
+ SceUChar8 unk_620[0x6C];
+
+ SceGxmContext *gxmContext;
+
+ SceUChar8 unk_690[0xD4];
+
+ SceUInt8 frontDepthWriteEnabled;
+ SceUInt8 backDepthWriteEnabled;
+
+ SceUInt16 unk_766;
+
+ SceGxmCullMode cullMode;
};
+ class DrawQueue
+ {
+ public:
+
+ class Item;
+
+ class Request
+ {
+ public:
+
+ typedef void(*RequestEntryFunction)(Item *job);
+
+ Item *job;
+ SceInt32 unk_04;
+ SceInt32 unk_08;
+ RequestEntryFunction entry;
+
+ };
+
+ class Item
+ {
+ public:
+
+ Item() { };
+
+ virtual ~Item() { };
+
+ virtual SceVoid DrawCB() = 0;
+
+ virtual SceVoid UnkCB2() = 0;
+
+ virtual SceVoid UnkCB3() = 0;
+
+ Request *req;
+
+ private:
+
+ SceUChar8 m_work[0x0C];
+
+ };
+
+ class ItemParam
+ {
+ public:
+
+ Item *item;
+ Request *request;
+ };
+
+ DrawQueue() { };
+
+ ~DrawQueue() { };
+
+ SceInt32 SetDrawJob(ItemParam *queueItemParam);
+ };
}
}
diff --git a/include/user/paf/lowlayer.h b/include/user/paf/lowlayer.h
new file mode 100644
index 0000000..f92d871
--- /dev/null
+++ b/include/user/paf/lowlayer.h
@@ -0,0 +1,25 @@
+/*
+ Vita Development Suite Libraries
+*/
+
+#ifndef _VDSUITE_USER_PAF_LOWLAYER_H
+#define _VDSUITE_USER_PAF_LOWLAYER_H
+
+#include <libdeflt.h>
+#include <kernel.h>
+#include <paf/common.h>
+
+namespace paf {
+ namespace lowlayer {
+
+ class Deflt
+ {
+ public:
+
+ static SceInt32 Decompress(ScePVoid pDst, SceUInt32 uiBufSize, const ScePVoid pSrcDeflate, const ScePVoid *ppNext);
+ };
+
+ }
+}
+
+#endif /* _VDSUITE_USER_PAF_LOWLAYER_H */
diff --git a/include/user/paf/misc.h b/include/user/paf/misc.h
index bf21a65..18925e0 100644
--- a/include/user/paf/misc.h
+++ b/include/user/paf/misc.h
@@ -12,7 +12,11 @@
namespace paf {
- static SceBool IsDolce();
+ namespace graphics {
+ class Texture;
+ }
+
+ class Allocator;
namespace datetime {
@@ -87,50 +91,89 @@ namespace paf {
}
+ class Http
+ {
+ public:
+
+ Http();
+
+ ~Http() {};
+
+ SceVoid SetUrl(const char *url);
+
+ SceVoid SetUrl(paf::String *url);
+
+ SceInt32 SetUnk(SceInt32 a1, SceInt32 a2);
+
+ private:
+
+ SceUChar8 m_work[0xB4];
+
+ };
+
namespace io {
enum Error
{
- SCE_PAF_ERROR_MISC_IO_INVALID_POINTER = 0x80AF5901
+ SCE_PAF_ERROR_MISC_IO_INVALID_POINTER = 0x80AF5901,
+ SCE_PAF_ERROR_MISC_IO_INVALID_ARGUMENT = 0x80AF5002,
+ SCE_PAF_ERROR_MISC_IO_OUT_OF_MEMORY = 0x80AF5003,
+ SCE_PAF_ERROR_MISC_IO_HTTP_NOT_SUPPORTED = 0x80AF5004,
+ SCE_PAF_ERROR_MISC_IO_MEM_NOT_SUPPORTED = 0x80AF5005,
+ SCE_PAF_ERROR_MISC_IO_FILE_NOT_FOUND = 0x80AF5022
};
- class File
+ enum Type
+ {
+ Type_Dir,
+ Type_File,
+ Type_Reg,
+ Type_Lnk
+ };
+
+ class AsyncResult
{
public:
- class AsyncResult
- {
- public:
+ SceInt32 result;
+ SceInt32 unk_04;
+ };
- SceInt32 result;
- SceInt32 unk_04;
- };
+ class File
+ {
+ public:
File();
virtual ~File();
- virtual SceInt32 Open(const char *filename, int flag, SceIoMode mode);
+ virtual SceInt32 Open(const char *filename, SceInt32 flag, SceIoMode mode);
virtual SceInt32 Close();
- virtual SceInt32 Read(void *buf, SceSize nbyte);
- virtual SceInt32 Write(const void *buf, SceSize nbyte);
- virtual SceInt32 Lseek(SceOff offset, int whence);
+ virtual SceInt32 Read(ScePVoid buf, SceSize nbyte);
+ virtual SceInt32 Write(const ScePVoid buf, SceSize nbyte);
+ virtual SceOff Lseek(SceOff offset, SceInt32 whence, SceIoAsyncParam* asyncParam = SCE_NULL);
virtual SceInt32 Sync();
- virtual SceInt32 OpenAsync(const char *filename, int flags, SceMode mode);
+ virtual SceInt32 OpenAsync(const char *filename, SceInt32 flag, SceMode mode);
virtual SceInt32 CloseAsync();
- virtual SceInt32 ReadAsync(void *buf, SceSize nbyte);
- virtual SceInt32 WriteAsync(const void *buf, SceSize nbyte);
- virtual SceInt32 LseekAsync(SceInt32 a1, int whence, SceIoAsyncParam* asyncParam);
+ virtual SceInt32 ReadAsync(ScePVoid buf, SceSize nbyte);
+ virtual SceInt32 WriteAsync(const ScePVoid buf, SceSize nbyte);
+ virtual SceInt32 LseekAsync(SceOff offset, SceInt32 whence, SceIoAsyncParam* asyncParam);
virtual SceInt32 SyncAsync();
virtual SceInt32 WaitAsync(AsyncResult *pResult);
virtual SceInt32 PollAsync(AsyncResult *pResult);
- virtual SceBool IsOpened();
- virtual SceInt32 unkFun_44();
+ virtual SceBool IsOpened();
+ virtual SceBool unkFun_44();
virtual SceInt32 CancelAsync();
- virtual SceOff GetSize();
- virtual SceInt32 GetStat(ScePVoid pafStat);
+ virtual SceOff GetSize();
+ virtual SceInt32 GetStat(SceIoStat *stat);
virtual SceInt32 SetPriority(SceUInt32 ioPriority);
+ static SceInt32 Rename(const char *oldname, const char *newname);
+
+ static SceInt32 Remove(const char *path);
+
+ static SceOff GetSize(const char *path);
+
private:
SceUChar8 m_work[0x2C];
@@ -145,7 +188,7 @@ namespace paf {
{
public:
- SceInt32 type;
+ Type type;
paf::String name;
SceInt32 size;
SceUInt32 creationYear;
@@ -165,26 +208,207 @@ namespace paf {
};
- static SceInt32 SetDefaultPriority(SceUInt32 ioPriority);
+ class Mem
+ {
+ public:
- static SceBool Exists(const char *path);
+ virtual SceInt32 unkFun_00();
+ virtual ScePVoid GetMembase();
+ virtual SceSize GetSize();
- static SceBool IsDir(const char *path);
+ virtual ~Mem();
- static SceInt32 Remove(const char *path);
+ private:
- static SceInt32 RemoveRecursive(const char *path);
+ Mem();
- static SceInt32 Mkdir(const char *dirname, SceIoMode mode);
+ SceUChar8 m_work[0x0C];
+ };
+
+ class Stat
+ {
+ public:
+
+ static SceInt32 GetStat(const char *path, Stat *buf);
+
+ static SceBool IsFileOrDir(const char *path);
+
+ static SceBool IsFile(const char *path);
+
+ static SceBool IsDir(const char *path);
+
+ SceIoMode st_mode;
+ SceUInt32 st_attr;
+ SceOff st_size;
+ datetime::DateTime ctime;
+ SceUChar8 pad1[3];
+ datetime::DateTime atime;
+ SceUChar8 pad2[3];
+ datetime::DateTime mtime;
+ };
+
+ class Misc
+ {
+ public:
+
+ static SceInt32 SetDefaultPriority(SceUInt32 ioPriority);
+
+ static SceBool Exists(const char *path);
+
+ static SceBool IsDir(const char *path);
- static SceInt32 MkdirRWSYS(const char *dirname);
+ static SceOff GetSize(const char *path);
- //dot-separated path list
- static SceInt32 MkdirMulti(const char *dirnameList, SceIoMode mode);
+ static SceInt32 Rename(const char *oldname, const char *newname);
- static SceInt32 MkdirMultiRWSYS(const char *dirnameList);
+ static SceInt32 Remove(const char *path);
+
+ static SceInt32 RemoveAny(const char *path);
+
+ static SceInt32 RemoveRecursive(const char *path);
+
+ static SceInt32 Mkdir(const char *dirname, SceIoMode mode);
+
+ static SceInt32 MkdirRWSYS(const char *dirname);
+
+ //dot-separated path list
+ static SceInt32 CreateRecursive(const char *dirnameList, SceIoMode mode);
+
+ static SceInt32 CreateRecursiveRWSYS(const char *dirnameList);
+ };
}
+ class LocalFile
+ {
+ public:
+
+ class OpenParam
+ {
+ public:
+
+ SceUInt32 ioType;
+ char *filename;
+ SceInt32 flag;
+ SceIoMode mode;
+ };
+
+ LocalFile();
+
+ LocalFile(paf::Allocator *allocator);
+
+ virtual SceInt32 GetType();
+ virtual SceInt32 unkFun_04();
+ virtual SceInt32 GetSize();
+ virtual SceInt32 Open(OpenParam *param);
+ virtual SceInt32 OpenAsync(OpenParam *param);
+ virtual SceInt32 Close();
+ virtual SceInt32 CloseAsync();
+ virtual SceBool IsOpened();
+ virtual SceBool unkFun_20();
+ virtual SceInt32 CancelAsync();
+ virtual SceInt32 Read(ScePVoid buf, SceSize nbyte);
+ virtual SceInt32 ReadAsync(ScePVoid buf, SceSize nbyte);
+ virtual SceInt32 Write(const ScePVoid buf, SceSize nbyte);
+ virtual SceInt32 WriteAsync(const ScePVoid buf, SceSize nbyte);
+ virtual SceOff Lseek(SceOff offset, SceInt32 whence, SceIoAsyncParam* asyncParam = SCE_NULL);
+ virtual SceInt32 LseekAsync(SceOff offset, SceInt32 whence, SceIoAsyncParam* asyncParam);
+ virtual SceInt32 Sync();
+ virtual SceInt32 SyncAsync();
+ virtual SceInt32 WaitAsync(io::AsyncResult *pResult);
+ virtual SceInt32 PollAsync(io::AsyncResult *pResult);
+ virtual SceInt32 GetStat(SceIoStat *stat);
+ virtual SceInt32 SetPriority(SceUInt32 ioPriority);
+
+ virtual ~LocalFile();
+
+ private:
+
+ SceUChar8 m_work[0x2C];
+ };
+
+ class MemFile
+ {
+ public:
+
+ class OpenParam
+ {
+ public:
+
+ SceUInt32 ioType;
+ ScePVoid ptr;
+ SceSize size;
+ };
+
+ MemFile();
+
+ virtual SceInt32 GetType();
+ virtual SceInt32 unkFun_04();
+ virtual SceUInt64 GetSize();
+ virtual SceInt32 Open(OpenParam *param);
+ virtual SceInt32 OpenAsync(OpenParam *param);
+ virtual SceInt32 Close();
+ virtual SceInt32 CloseAsync();
+ virtual SceBool IsOpened();
+ virtual SceBool unkFun_20();
+ virtual SceInt32 CancelAsync();
+ virtual SceInt32 Read(ScePVoid buf, SceSize nbyte);
+ virtual SceInt32 ReadAsync(ScePVoid buf, SceSize nbyte);
+ virtual SceInt32 Write(const ScePVoid buf, SceSize nbyte);
+ virtual SceInt32 WriteAsync(const ScePVoid buf, SceSize nbyte);
+ virtual SceInt32 Lseek(SceOff offset, SceInt32 whence, SceIoAsyncParam* asyncParam = SCE_NULL);
+ virtual SceInt32 LseekAsync(SceOff offset, SceInt32 whence, SceIoAsyncParam* asyncParam);
+ virtual SceInt32 Sync();
+ virtual SceInt32 SyncAsync();
+ virtual SceInt32 WaitAsync(io::AsyncResult *pResult);
+ virtual SceInt32 PollAsync(io::AsyncResult *pResult);
+ virtual SceInt32 GetStat(SceIoStat *stat); // not supported
+ virtual SceInt32 SetPriority(SceUInt32 ioPriority); // not supported
+
+ virtual ~MemFile();
+
+ private:
+
+ SceUChar8 m_work[0x4C];
+ };
+
+ class HttpFile
+ {
+ public:
+
+ HttpFile();
+
+ virtual SceInt32 GetType();
+ virtual SceInt32 unkFun_04();
+ virtual SceUInt64 GetSize();
+ virtual SceInt32 Open(Http *param);
+ virtual SceInt32 OpenAsync(Http *param);
+ virtual SceInt32 Close();
+ virtual SceInt32 CloseAsync();
+ virtual SceBool IsOpened();
+ virtual SceBool unkFun_20();
+ virtual SceInt32 CancelAsync();
+ virtual SceInt32 Read(ScePVoid buf, SceSize nbyte);
+ virtual SceInt32 ReadAsync(ScePVoid buf, SceSize nbyte);
+ virtual SceInt32 Write(const ScePVoid buf, SceSize nbyte); // not supported
+ virtual SceInt32 WriteAsync(const ScePVoid buf, SceSize nbyte); // not supported
+ virtual SceInt32 Lseek(SceOff offset, SceInt32 whence, SceIoAsyncParam* asyncParam = SCE_NULL);
+ virtual SceInt32 LseekAsync(SceOff offset, SceInt32 whence, SceIoAsyncParam* asyncParam);
+ virtual SceInt32 Sync();
+ virtual SceInt32 SyncAsync();
+ virtual SceInt32 WaitAsync(io::AsyncResult *pResult);
+ virtual SceInt32 PollAsync(io::AsyncResult *pResult);
+ virtual SceInt32 GetStat(SceIoStat *stat);
+ virtual SceInt32 SetPriority(SceUInt32 ioPriority);
+
+ virtual ~HttpFile();
+
+ static SceInt32 GetStat(const char *url, SceIoStat *stat);
+
+ private:
+
+ SceUChar8 m_work[0x4C];
+ };
+
class Module
{
public:
@@ -241,14 +465,16 @@ namespace paf {
Allocator(ScePVoid *membase, SceSize size, const char *name, Opt *pOpt = SCE_NULL);
+ virtual SceInt32 GetType();
+ virtual SceBool IsCdlgMemory();
+ virtual char* GetName();
+ virtual SceVoid GetInfo(ScePVoid **membase, SceSize *size);
+ virtual SceSize GetFreeSize();
+
virtual ~Allocator();
static Allocator *GetGlobalAllocator();
- SceSize GetSize();
-
- SceVoid GetMemBlockBase(ScePVoid *membase, ScePVoid *membaseTop);
-
SceVoid Deallocate(ScePVoid ptr);
ScePVoid Allocate(SceSize size);
@@ -271,7 +497,7 @@ namespace paf {
enum Type
{
- Type_0,
+ Type_AutoDetect,
Type_PNG,
Type_JPEG,
Type_TIFF,
@@ -282,7 +508,7 @@ namespace paf {
};
- class Result
+ class LoadResult
{
public:
@@ -290,15 +516,89 @@ namespace paf {
ScePVoid unk_04;
};
- static SceVoid Load(Result *pRes, const char *pPath, ScePVoid buf, SceInt32 a4, SceInt32 a5, SceInt32 a6, SceInt32 a7);
+ class Resolution
+ {
+ public:
+
+ SceUInt32 width;
+ SceUInt32 height;
+ };
+
+ //ScePafMisc_57AD1093
+ static Type GetTypeFromFile(const char *pPath, SceInt32 unused, SceOff offset, SceIoAsyncParam* asyncIoParam);
+
+ //ScePafMisc_D77AEA5F
+ static Type GetTypeFromMem(ScePVoid imageBuf, SceSize imageSize);
+
+ static SceVoid LoadFromFile(LoadResult *pRes, const char *pPath, paf::Allocator *allocator, Type type, SceOff offset, SceIoAsyncParam* asyncIoParam, SceSize sizeWithoutOffset);
+
+ //ScePafMisc_C341D895
+ static SceInt32 LoadFromMem(LoadResult *pRes, ScePVoid imageBuf, SceSize imageSize, paf::Allocator *allocator, Type type);
+
+ //ScePafMisc_29E8BCA7
+ static SceVoid Convert(LoadResult *pRes, Image *pSrc, SceUInt32 targetType, SceInt32 a4);
+
+ //ScePafMisc_502BC2CF
+ static SceVoid ToTexture(paf::graphics::Texture *pTex, Image *pImg, SceInt32 a3);
static SceInt32 GetLastError();
static SceBool SetLastError(SceInt32 errorCode);
+ static SceVoid GetResolution(Resolution *pRes, Image *img);
+
SceInt32 GetType();
SceInt32 GetPaletteColorNum();
+
+ //147115CE
+ SceUInt32 GetFormat();
+
+ //7B15112F
+ SceUInt32 GetOrderType();
+ };
+
+ class Misc
+ {
+ public:
+
+ class OpenResult
+ {
+ public:
+
+ union
+ {
+ LocalFile *localFile;
+ MemFile *memFile;
+ HttpFile *httpFile;
+ io::Mem *memory;
+ };
+
+ ScePVoid unk_04;
+ };
+
+ static SceVoid OpenMemDirect(OpenResult *res, ScePVoid ptr, SceSize size);
+
+ static SceVoid OpenFile(OpenResult *res, const char *path, SceInt32 flag, SceIoMode mode, SceInt32 *error);
+
+ static SceVoid OpenMem(OpenResult *res, ScePVoid ptr, SceSize size, SceInt32 *error);
+
+ static SceVoid OpenMem(OpenResult *res, OpenResult *memory, SceInt32 *error);
+
+ static SceVoid OpenHttp(OpenResult *res, const SceWChar16 *url, SceInt32 *error, SceInt32 timeout);
+
+ static SceVoid OpenHttp(OpenResult *res, const char *url, SceInt32 *error, SceInt32 timeout);
+
+ static SceBool IsDolce();
+
+ static SceVoid SuspendTouchInput(SceUInt32 port);
+
+ static SceVoid ResumeTouchInput(SceUInt32 port);
+
+ //ScePafMisc_5E39FCE1
+ static SceInt32 Decompress(ScePVoid memOut, SceSize origsize, ScePVoid memIn, SceSize size, SceInt32 libType = 1);
+
+ static SceInt32 Test1(char *path);
};
}
diff --git a/include/user/paf/stdc.h b/include/user/paf/stdc.h
index 1f72ced..74c2346 100644
--- a/include/user/paf/stdc.h
+++ b/include/user/paf/stdc.h
@@ -17,6 +17,8 @@ extern "C" {
* std C functions
*/
+int sce_paf_abs(int x);
+int sce_paf_atoi(const char * str);
void *sce_paf_bzero(void *ptr, SceSize num);
void *sce_paf_memchr(const void *ptr, int value, SceSize num);
int sce_paf_memcmp(const void *ptr1, const void *ptr2, SceSize num);
@@ -34,6 +36,12 @@ int sce_paf_strncasecmp(const char *str1, const char *str2, SceSize num);
int sce_paf_strncmp(const char *str1, const char *str2, SceSize num);
char *sce_paf_strncpy(char *destination, const char *source, SceSize num);
char *sce_paf_strrchr(const char *str, int character);
+void sce_paf_qsort(void *ptr, SceSize count, SceSize size, int(*comp)(const void *, const void *));
+
+unsigned long int sce_paf_strtoul(const char* str, char** endptr, int base);
+
+int sce_paf_rand(void);
+void sce_paf_srand(unsigned int seed);
/**
* wchar functions
@@ -68,6 +76,13 @@ int sce_paf_wmemcmp(const wchar_t *lhs, const wchar_t *rhs, size_t count);
wchar_t *sce_paf_wmemcpy(wchar_t *dest, const wchar_t *src, size_t count);
wchar_t *sce_paf_wmemmove(wchar_t *dest, const wchar_t *src, size_t count);
+void *sce_paf_memalign(size_t align, size_t length);
+void sce_paf_free(void *ptr);
+void *sce_paf_malloc(size_t size);
+
+float sce_paf_ceilf(float arg);
+float sce_paf_floorf(float arg);
+
#ifdef __cplusplus
}
#endif
diff --git a/include/user/paf/thread.h b/include/user/paf/thread.h
index 2b4d683..deef546 100644
--- a/include/user/paf/thread.h
+++ b/include/user/paf/thread.h
@@ -234,8 +234,7 @@ namespace paf {
};
- //Not usable yet
- /*class JobQueue
+ class JobQueue
{
public:
@@ -293,11 +292,17 @@ namespace paf {
private:
- SceUChar8 m_work[0x24];
+ SceUChar8 m_work[0x14];
};
- typedef void(*QueueEntryFunction)(void *pArgBlock);
+ class ItemParam
+ {
+ public:
+
+ Item *item;
+ Request *request;
+ };
JobQueue(const char *pName, Opt *opt = SCE_NULL);
@@ -309,7 +314,7 @@ namespace paf {
static SceVoid DeleteDefaultJobQueue();
- SceInt32 Push(Item *queueItem);
+ SceInt32 Push(ItemParam *queueItemParam);
SceVoid Join();
@@ -317,15 +322,15 @@ namespace paf {
SceVoid ChangeWorkerPriority(SceInt32 priority);
- SceVoid Execute();
+ SceVoid Finish();
- SceVoid Execute2();
+ SceVoid Execute();
private:
SceUChar8 m_work[0x2C];
- };*/
+ };
}
}
diff --git a/include/user/paf/toplevel.h b/include/user/paf/toplevel.h
index e5ec819..5d0c8f4 100644
--- a/include/user/paf/toplevel.h
+++ b/include/user/paf/toplevel.h
@@ -6,19 +6,12 @@
#define _VDSUITE_USER_PAF_TOPLEVEL_H
#include <kernel.h>
+#include <paf/graphics.h>
#include <paf/resource.h>
+#include <paf/widget.h>
namespace paf {
- namespace graphics {
- class Texture;
- class MemoryPool;
- }
-
- namespace widget {
- class Widget;
- }
-
class Plugin
{
public:
@@ -29,17 +22,17 @@ namespace paf {
~Plugin() {};
- class RootWidgetInitParam
+ class SceneInitParam
{
public:
- RootWidgetInitParam();
+ SceneInitParam();
- ~RootWidgetInitParam() { };
+ ~SceneInitParam() { };
SceInt32 unk_00;
SceInt32 unk_04;
- SceInt32 unk_08;
+ SceInt32 priority;
SceUChar8 unk_0C[0x20];
};
@@ -59,20 +52,31 @@ namespace paf {
static SceVoid LoadTexture(paf::graphics::Texture *tex, Plugin *plugin, paf::Resource::Element *textureSearchParam);
- paf::widget::Widget *SetRootWidget(paf::Resource::Element *widgetInfo, RootWidgetInitParam *initParam);
+ //6F7E804D
+ //SceInt32 AddTextureFromFile(paf::String *unk, const char *filePath, const char *a3);
+
+ paf::widget::Widget *CreateScene(paf::Resource::Element *widgetInfo, SceneInitParam *initParam);
+
+ paf::widget::Widget *CreateWidgetWithStyle(paf::widget::Widget *parent, const char *widgetType, paf::Resource::Element *widgetInfo, paf::Resource::Element *styleInfo);
+
+ paf::widget::Widget *GetSceneByHash(paf::Resource::Element *widgetInfo);
- paf::widget::Widget *GetRootWidgetByHash(paf::Resource::Element *widgetInfo);
+ paf::widget::Widget *GetWidgetByNum(SceUInt32 num);
SceInt32 AddWidgetFromTemplate(paf::widget::Widget *targetRoot, paf::Resource::Element *templateSearchParam, paf::Plugin::TemplateInitParam *param);
- SceUChar8 unk_00[0x4];
+ SceWChar16 *GetString(paf::Resource::Element *stringInfo);
+
+ SceUInt32 unk_00;
char *name;
SceUChar8 unk_08[0xA8];
Resource *resource;
+ SceUChar8 unk_B4[0x20];
+ graphics::MemoryPool *memoryPool;
private:
- SceUChar8 m_unk_B4[0x4]; //size is unknown
+ SceUChar8 m_unk_B8[0x4]; //size is unknown
};
@@ -96,35 +100,57 @@ namespace paf {
{
public:
+ enum FeatureFlags
+ {
+ FeatureFlag_UseFwUpdateSync = 1,
+ FeatureFlag_DisableInternalCallbackChecks = 2,
+ FeatureFlag_4 = 4,
+ FeatureFlag_8 = 8
+ };
+
InitParam();
~InitParam() { };
InitParam *LoadDefaultParams();
- SceUInt32 unk_00;
+ SceUInt32 gxmRingBufferSize;
SceUInt32 gxmParameterBufferSize;
- SceUChar8 unk0[0x10];
+ SceUInt32 unk_08;
+ SceUInt32 defaultSurfacePoolSize;
+ SceUInt32 graphMemSystemHeapSize;
+
+ SceUInt32 graphMemVideoHeapSize;
SceUInt32 textSurfaceCacheSize;
+ SceUInt32 unk_1C;
+ SceUInt32 unk_20;
- SceUChar8 unk1[0x40];
+ SceUChar8 unk_24[0x30];
+ SceUInt32 fontRasterizerFlags;
+ SceUInt32 fontRasterizerHeapSize;
SceUInt32 decodeHeapSize;
SceUInt32 defaultPluginHeapSize;
- SceInt32 screenWidth; //unused
- SceInt32 sceenHeight; //unused
+ SceUInt32 unkSize_64;
+ SceInt32 screenWidth;
+ SceInt32 sceenHeight;
ApplicationMode applicationMode;
- SceInt32 optionalFeatureFlags;
+ SceUInt32 optionalFeatureFlags;
SceInt32 language;
SceInt32 enterButtonAssign;
- SceBool useAdditionalWidgetInit;
+ SceUInt8 allowControlWithButtons;
+ SceUInt8 unkOptFlag1;
+ SceUInt8 unkOptFlag2;
+ SceUInt8 unkOptFlag3;
ScePVoid unk_84;
SceInt32 unused_88;
SceInt32 graphicsFlags;
- SceUChar8 unk2[0x134];
+ SceUInt32 unk_140;
+
+ SceUChar8 unk2[0x20];
};
class CommonResourceInitParam
@@ -156,7 +182,11 @@ namespace paf {
paf::Plugin::PluginCB unloadCB2;
paf::String resourcePath;
- SceUChar8 unk_38[0x20];
+ SceUChar8 unk_38[0xC];
+
+ SceUInt32 pluginHeapSize;
+
+ SceUChar8 unk_48[0x10];
SceInt32 unk_58;
@@ -187,7 +217,9 @@ namespace paf {
static paf::graphics::MemoryPool *GetDefaultGraphicsMemoryPool();
- static SceVoid LoadTexture(paf::graphics::Texture *tex, Framework *fw, paf::Resource::Element *searchParam);
+ static SceVoid LoadTextureCurrentPlugin(paf::graphics::Texture *tex, Framework *fw, paf::Resource::Element *searchParam);
+
+ static SceVoid CreateTextureFromMemory(paf::graphics::Texture *tex, Plugin *plugin, ScePVoid ptr, SceSize size, paf::Image::Type type, SceBool isCompressed, SceSize origsize);
SceVoid _LoadPluginAsync(PluginInitParam *initParam, LoadPluginFinishCallback finishCallback = SCE_NULL, UnloadPluginFinishCallback unloadFinishCallback = SCE_NULL);
@@ -207,15 +239,29 @@ namespace paf {
ApplicationMode GetApplicationMode();
- SceInt32 Test2(SceFloat32, SceInt32, SceInt32);
+ paf::widget::Widget *GetCurrentScene();
+
+ SceWChar16 *GetCRString(paf::Resource::Element *stringInfo);
- paf::widget::Widget *GetRootWidget();
+ SceUChar8 unk_00[0x18];
- SceUChar8 unk_00[0x1C];
+ SceUInt32 loadedPluginNum;
Plugin *crPlugin;
- SceUChar8 unk_20[0x5C];
+ SceUChar8 unk_20[0x34];
+
+ ApplicationMode applicationMode;
+
+ SceUInt32 optionalFeatureFlags;
+
+ SceUInt32 language;
+
+ SceUChar8 unk_60[0x14];
+
+ SceUID powerCallbackId;
+
+ paf::Allocator *defaultAllocator;
};
}
diff --git a/include/user/paf/widget.h b/include/user/paf/widget.h
index c7c25e9..b22cc00 100644
--- a/include/user/paf/widget.h
+++ b/include/user/paf/widget.h
@@ -14,6 +14,8 @@ namespace paf {
class WString;
namespace graphics {
+ class DrawQueue;
+ class TextObj;
class Texture;
}
@@ -142,8 +144,8 @@ namespace paf {
virtual int unkFun_084();
virtual int unkFun_088();
virtual int unkFun_08C();
- virtual int unkFun_090_anim(SceInt32 animationCode, SceBool setSomeFloat);
- virtual int unkFun_094_animRev(SceInt32 animationCode, SceBool setSomeFloat);
+ virtual int unkFun_090_anim(SceFloat32 a1, SceInt32 animationCode, SceBool setSomeFloat);
+ virtual int unkFun_094_animRev(SceFloat32 a1, SceInt32 animationCode, SceBool setSomeFloat);
virtual int unkFun_098();
virtual int unkFun_09C();
virtual int unkFun_0A0();
@@ -168,9 +170,9 @@ namespace paf {
virtual int unkFun_0EC();
virtual int unkFun_0F0();
virtual int unkFun_0F4();
- virtual int unkFun_0F8(SceInt32);
- virtual int unkFun_0FC();
- virtual int SetTexture(paf::graphics::Texture *tex);
+ virtual graphics::DrawQueue *GetDrawQueue(SceInt32 a1 = 0);
+ virtual int SetTexture(paf::graphics::Texture *tex, SceInt32 childNum, SceInt32 a3 = 0);
+ virtual int SetTextureBase(paf::graphics::Texture *tex);
virtual int unkFun_104();
virtual int unkFun_108();
virtual int unkFun_10C();
@@ -178,11 +180,11 @@ namespace paf {
virtual int unkFun_114();
virtual SceInt32 SetLabelWithFlag(paf::WString *text, SceInt32 flag);
virtual SceInt32 SetLabel(paf::WString *text);
- virtual int unkFun_120();
- virtual int unkFun_124();
+ virtual SceInt32 GetLabelWithFlag(paf::WString *text, SceInt32 flag);
+ virtual SceInt32 GetLabel(paf::WString *text);
virtual int unkFun_128();
virtual int unkFun_12C();
- virtual int unkFun_130();
+ virtual int unkFun_130(SceInt32);
virtual int unkFun_134(SceInt32);
virtual int unkFun_138();
virtual int unkFun_13C();
@@ -207,7 +209,7 @@ namespace paf {
virtual int unkFun_188();
virtual int unkFun_18C();
virtual int unkFun_190();
- virtual int unkFun_194();
+ virtual int unkFun_194(SceFloat32 a1, SceFVector4 *a2, SceInt32 a3, SceInt32 a4, SceInt32 a5);
virtual int unkFun_198();
virtual int unkFun_19C();
virtual int unkFun_1A0();
@@ -256,6 +258,8 @@ namespace paf {
static char *TypeScrollViewParent();
+ static char *TypeScrollView();
+
static char *TypeScrollBar2D();
static char *TypeScrollBarTouch();
@@ -326,17 +330,37 @@ namespace paf {
SceInt32 SetAdjust(SceBool x, SceBool y, SceBool z);
+ SceVoid SetGraphicsDisabled(SceBool disable);
+
+ enum EventCtrl
+ {
+ EventCtrl_ButtonPress = 0x10001,
+ EventCtrl_ButtonRelease = 0x10002,
+ EventCtrl_ButtonHold = 0x10003
+ };
+
+ enum EventFocus
+ {
+ EventFocus_On = 0x40001,
+ EventFocus_Off = 0x40002
+ };
+
+ enum EventMain
+ {
+ EventMain_Pressed = 0x10000008
+ };
+
SceInt32 RegisterEventCallback(SceInt32 eventId, EventCallback *cb, SceBool a3);
SceInt32 UnregisterEventCallback(SceInt32 eventId, SceInt32 a2, SceInt32 a3);
- SceInt32 RegisterLoopEventCallback(SceInt32 eventId, EventCallback *cb);
+ SceInt32 RegisterFwEventCallback(SceFloat32 delay, SceInt32 eventId, EventCallback *cb);
- SceInt32 UnregisterLoopEventCallback(SceInt32 eventId);
+ SceInt32 UnregisterFwEventCallback(SceInt32 eventId);
SceInt32 AssignButton(SceUInt32 buttons);
- SceInt32 SetDimFactor(SceFloat32 factor, SceInt32 a2 = 0, SceInt32 a3 = 0x10003, SceInt32 a4 = 0, SceInt32 a5 = 0, SceInt32 a6 = 0);
+ SceInt32 SetAlpha(SceFloat32 alpha, SceInt32 a2 = 0, SceInt32 a3 = 0x10003, SceInt32 a4 = 0, SceInt32 a5 = 0, SceInt32 a6 = 0);
SceVoid Disable(SceBool a1);
@@ -390,11 +414,19 @@ namespace paf {
};
- SceInt32 PlayAnimation(Animation animId, EventCallback::EventHandler animCB = 0, ScePVoid pUserData = SCE_NULL);
+ SceInt32 PlayAnimation(SceFloat32 animationSpeed, Animation animId, EventCallback::EventHandler animCB = 0, ScePVoid pUserData = SCE_NULL);
+
+ SceInt32 PlayAnimationReverse(SceFloat32 animationSpeed, Animation animId, EventCallback::EventHandler animCB = 0, ScePVoid pUserData = SCE_NULL);
- SceInt32 PlayAnimationReverse(Animation animId, EventCallback::EventHandler animCB = 0, ScePVoid pUserData = SCE_NULL);
+ SceUChar8 unk_004[0x5D];
- SceUChar8 unk_004[0x148];
+ SceUInt8 unk_061;
+
+ SceUChar8 unk_062[0x74];
+
+ SceUInt8 unk_0D6;
+
+ SceUChar8 unk_0D7[0x75];
SceUInt32 hash;
@@ -406,16 +438,24 @@ namespace paf {
SceUInt8 animationStatus;
- SceUChar8 unk_197[0xF5];
+ SceUChar8 unk_197[0xE9];
+
+ graphics::TextObj *textObj;
+
+ SceUChar8 unk_284[0x8];
Color *pDisabledColor;
- SceUChar8 unk_290[0x5];
+ SceUInt32 unk_290;
+
+ SceUChar8 unk_294[0x1];
private:
};
+ static int a = sizeof(Widget);
+
class BusyIndicator : public Widget
{
public:
@@ -443,9 +483,11 @@ namespace paf {
virtual ~Text();
+ SceUInt32 unk_298;
+
private:
- SceUChar8 unk_298[0x40];
+ SceUChar8 unk_29C[0x3C];
};
class TextBox : public Widget
@@ -575,6 +617,67 @@ namespace paf {
virtual ~ScrollViewParent();
};
+ class ScrollView : public Widget
+ {
+ public:
+
+ ScrollView(Widget *parent, SceInt32 a2);
+
+ virtual ~ScrollView();
+
+ virtual int unkFun_1AC();
+ virtual int unkFun_1B0();
+ virtual int unkFun_1B4();
+ virtual int unkFun_1B8();
+ virtual int unkFun_1BC();
+ virtual int unkFun_1C0();
+ virtual int unkFun_1C4();
+ virtual int unkFun_1C8();
+ virtual int unkFun_1CC();
+ virtual int unkFun_1D0();
+ virtual int unkFun_1D4();
+ virtual int unkFun_1D8();
+ virtual int unkFun_1DC();
+ virtual int unkFun_1E0();
+ virtual int unkFun_1E4();
+ virtual int unkFun_1E8();
+ virtual int unkFun_1EC();
+ virtual int unkFun_1F0();
+ virtual int unkFun_1F4();
+ virtual int unkFun_1F8();
+ virtual int unkFun_1FC();
+ virtual int unkFun_200();
+ virtual int unkFun_204();
+ virtual int unkFun_208();
+ virtual int unkFun_20C();
+ virtual int unkFun_210();
+ virtual int unkFun_214();
+ virtual int unkFun_218();
+ virtual int unkFun_21C();
+ virtual int unkFun_220();
+ virtual int unkFun_224();
+ virtual int unkFun_228();
+ virtual int unkFun_22C(SceInt32 a2);
+ virtual int unkFun_230();
+ virtual int unkFun_234();
+ virtual int unkFun_238();
+ virtual int unkFun_23C();
+ virtual int unkFun_240(SceFVector4 *a1, SceInt32 a2);
+ virtual int unkFun_244();
+ virtual int unkFun_248(SceInt32 a1);
+ virtual int unkFun_24C(SceInt32 a1);
+ virtual int unkFun_250();
+ virtual int unkFun_254(SceUInt64 *a1, SceInt32 a2, SceInt32 a3, SceInt32 a4);
+ virtual int unkFun_258(SceInt32 a1);
+ virtual int unkFun_25C();
+ virtual int unkFun_260(SceFVector4 *a1, SceInt32 a2);
+ virtual int unkFun_264();
+ virtual int unkFun_268();
+ virtual int unkFun_26C();
+ virtual int unkFun_270();
+ virtual int unkFun_274(SceInt32 a1);
+ };
+
class ScrollBar2D : public Widget
{
public:
@@ -636,6 +739,36 @@ namespace paf {
ProgressBar(Widget *parent, SceInt32 a2);
virtual ~ProgressBar();
+
+ virtual int unkFun_1AC();
+ virtual int unkFun_1B0();
+ virtual int unkFun_1B4();
+ virtual int unkFun_1B8();
+ virtual int unkFun_1BC();
+ virtual int unkFun_1C0();
+ virtual int unkFun_1C4();
+ virtual int unkFun_1C8();
+ virtual int unkFun_1CC();
+ virtual int unkFun_1D0();
+ virtual int unkFun_1D4();
+ virtual int unkFun_1D8();
+ virtual int unkFun_1DC();
+ virtual int unkFun_1E0();
+ virtual int unkFun_1E4();
+ virtual int SetProgress(SceFloat32 value, SceUInt32 a2, SceUInt32 a3);
+ virtual int unkFun_1EC();
+ virtual int unkFun_1F0();
+ virtual int unkFun_1F4();
+ virtual int unkFun_1F8();
+ virtual int unkFun_1FC();
+ virtual int unkFun_200();
+
+ SceUChar8 unk_295[0x7];
+
+ SceFloat32 fullValue;
+ SceFloat32 unk_2A0;
+ SceFloat32 currentValue;
+
};
class ProgressBarTouch : public Widget
@@ -645,6 +778,35 @@ namespace paf {
ProgressBarTouch(Widget *parent, SceInt32 a2);
virtual ~ProgressBarTouch();
+
+ virtual int unkFun_1AC();
+ virtual int unkFun_1B0();
+ virtual int unkFun_1B4();
+ virtual int unkFun_1B8();
+ virtual int unkFun_1BC();
+ virtual int unkFun_1C0();
+ virtual int unkFun_1C4();
+ virtual int unkFun_1C8();
+ virtual int unkFun_1CC(SceInt32 a1);
+ virtual int unkFun_1D0();
+ virtual int unkFun_1D4();
+ virtual int unkFun_1D8();
+ virtual int unkFun_1DC();
+ virtual int unkFun_1E0();
+ virtual int unkFun_1E4();
+ virtual int SetProgress(SceFloat32 value, SceUInt32 a2, SceUInt32 a3);
+ virtual int unkFun_1EC();
+ virtual int unkFun_1F0();
+ virtual int unkFun_1F4();
+ virtual int unkFun_1F8();
+ virtual int unkFun_1FC();
+ virtual int unkFun_200();
+
+ SceUChar8 unk_295[0x7];
+
+ SceFloat32 fullValue;
+ SceFloat32 unk_2A0;
+ SceFloat32 currentValue;
};
class ListItem : public Widget //0x2d0
diff --git a/nids/360/ScePaf.yml b/nids/360/ScePaf.yml
index c6e0164..aa50fef 100644
--- a/nids/360/ScePaf.yml
+++ b/nids/360/ScePaf.yml
@@ -5,6 +5,8 @@ modules:
ScePafCommon:
nid: 0x3C1965CD
functions:
+ _ZN3paf6String13MemsizeFormatEj: 0xF7FEB001
+ _ZN3paf6String4SetfEPKcz: 0x87D6E910
_ZN3paf6String9ToWStringEPKcPNS_7WStringE: 0x950C3AA0
_ZN3paf6String9ToWStringEPKcPNS_7WStringEj: 0xA9ED25D9
_ZN3paf6String9ToWStringEPNS_7WStringE: 0x3CFEB1EB
@@ -17,19 +19,31 @@ modules:
_ZN3paf6StringC2EPKcj: 0x1F1C3F8D
_ZN3paf6StringC2EPS0_: 0xCC229501
_ZN3paf6StringC2Ev: 0x50C5FA24
- _ZN3paf6common21WidgetStateTransitionEfPNS_6widget6WidgetEjii: 0xB48C9BDC
- _ZN3paf6common28WidgetStateTransitionReverseEfPNS_6widget6WidgetEjii: 0x6CF3A3C8
_ZN3paf6common5Utils17AddMainThreadTaskEPFvPvES2_: 0x6735B503
_ZN3paf6common5Utils20RemoveMainThreadTaskEPFvPvES2_: 0x4A8115D5
+ _ZN3paf6common5Utils21WidgetStateTransitionEfPNS_6widget6WidgetEjii: 0xB48C9BDC
+ _ZN3paf6common5Utils28WidgetStateTransitionReverseEfPNS_6widget6WidgetEjii: 0x6CF3A3C8
_ZN3paf7WString8ToStringEPKtPNS_6StringE: 0x8E009780
_ZN3paf7WString8ToStringEPKtPNS_6StringEj: 0x5FAAAE1C
_ZN3paf7WString8ToStringEPNS_6StringE: 0x06C015C6
_ZN3paf7WString8ToStringEPNS_6StringEj: 0x683BC8E8
+ _ZN3paf8SWStringC1EPKc: 0x4107391F
+ _ZN3paf8SWStringC1EPKt: 0x5DF278C9
+ _ZN3paf8SWStringC1EPNS_6StringE: 0x5AB8BCDE
+ _ZN3paf8SWStringC1EPNS_7WStringE: 0x9C4ABDBE
+ _ZN3paf8SWStringC1Ev: 0x298D25EE
+ _ZN3paf8SWStringC2EPKc: 0xE23D7BA7
+ _ZN3paf8SWStringC2EPKt: 0xDB4B2313
+ _ZN3paf8SWStringC2EPNS_6StringE: 0xCE934628
+ _ZN3paf8SWStringC2EPNS_7WStringE: 0x7607A514
+ _ZN3paf8SWStringC2Ev: 0xD9F31F44
+ _ZN3paf8SWStringD1Ev: 0x96777934
+ _ZN3paf8SWStringD2Ev: 0xE2544213
ScePafGraphics:
nid: 0xA070D6A7
functions:
- _ZN3paf8graphics10MemoryPool12FreeMemBlockEjPv: 0x167F6801
- _ZN3paf8graphics10MemoryPool13AllocMemBlockEjjPKcPv: 0xBBE8F063
+ _ZN3paf8graphics10MemoryPool12FreeMemBlockENS1_10MemoryTypeEPv: 0x167F6801
+ _ZN3paf8graphics10MemoryPool13AllocMemBlockENS1_10MemoryTypeEjPKcPv: 0xBBE8F063
_ZN3paf8graphics10MemoryPool20GetDefaultMemoryPoolEv: 0xCDE30B64
_ZN3paf8graphics10MemoryPoolC1EPNS1_9InitParamE: 0x6A986ED3
_ZN3paf8graphics10MemoryPoolC1EPvjPKcPNS_9Allocator3OptEj: 0xEEC40427
@@ -38,65 +52,150 @@ modules:
_ZN3paf8graphics10MemoryPoolD0Ev: 0x1697139C
_ZN3paf8graphics10MemoryPoolD1Ev: 0x2FBA10B9
_ZN3paf8graphics10MemoryPoolD2Ev: 0x2B1159EC
+ _ZN3paf8graphics17FwGraphicsContext20GetFwGraphicsContextEv: 0x6C448991
+ _ZN3paf8graphics7Surface7GetLockEv: 0x29FC820B
_ZN3paf8graphics7SurfaceC1EPNS0_10MemoryPoolEjjjjiji: 0x7C8B2A63
_ZN3paf8graphics7SurfaceD0Ev: 0x58D2FEF6
_ZN3paf8graphics7SurfaceD1Ev: 0x767D7A4D
_ZN3paf8graphics7SurfaceD2Ev: 0xF1EE942C
_ZN3paf8graphics7SurfacedlEPv: 0x9FAF51CF
_ZN3paf8graphics7SurfacenwEj: 0x6EA3E8FF
+ _ZN3paf8graphics7TextObj16GetDataAndLengthEPPtPj: 0x67094D42
+ _ZN3paf8graphics7TextObj9GetLengthEPj: 0x3B798744
+ _ZN3paf8graphics7TextObjD1Ev: 0x919B8983
+ _ZN3paf8graphics7Texture14CreateFromFileEPS1_PNS0_10MemoryPoolEPNS_4Misc10OpenResultEPv: 0xB228A257
+ _ZN3paf8graphics7Texture16CreateFromMemoryEPS1_PNS0_10MemoryPoolEPvijiS5_: 0x476AB004
+ _ZN3paf8graphics9DrawQueue10SetDrawJobEPNS1_9ItemParamE: 0x0F6790DB
+ ScePafLowlayer:
+ nid: 0x2342266A
+ functions:
+ _ZN3paf8lowlayer5Deflt10DecompressEPvjS2_PKS2_: 0xD7DAA151
ScePafMisc:
nid: 0x3D643CE8
functions:
- _ZN3paf2io10MkdirMultiEPKci: 0xFDCD1121
- _ZN3paf2io10MkdirRWSYSEPKc: 0x198A4C81
- _ZN3paf2io15MkdirMultiRWSYSEPKc: 0xE39FA610
- _ZN3paf2io15RemoveRecursiveEPKc: 0xDFF0CA06
- _ZN3paf2io18SetDefaultPriorityEj: 0xA283AD47
- _ZN3paf2io3Dir4OpenEPiPKc: 0x95F2C107
+ _ZN3paf2io3Dir4OpenEPKc: 0x95F2C107
_ZN3paf2io3Dir4ReadEPNS1_6DirentE: 0xA4F553B0
- _ZN3paf2io3Dir5CloseEPi: 0x2E8E9CBB
+ _ZN3paf2io3Dir5CloseEv: 0x2E8E9CBB
_ZN3paf2io4File10CloseAsyncEv: 0xE1624D8E
- _ZN3paf2io4File10LseekAsyncEiiP15SceIoAsyncParam: 0x69798A47
+ _ZN3paf2io4File10LseekAsyncExiP15SceIoAsyncParam: 0x69798A47
_ZN3paf2io4File10WriteAsyncEPKvj: 0x604D3C31
_ZN3paf2io4File11CancelAsyncEv: 0x00AB4F34
_ZN3paf2io4File11SetPriorityEj: 0x619FA110
+ _ZN3paf2io4File18SetDefaultPriorityEj: 0xA283AD47
_ZN3paf2io4File4OpenEPKcii: 0x9DD7B62D
_ZN3paf2io4File4ReadEPvj: 0x999CDF39
_ZN3paf2io4File4SyncEv: 0x61B3C8C6
_ZN3paf2io4File5CloseEv: 0x757CC8B1
- _ZN3paf2io4File5LseekExi: 0x38D851FF
+ _ZN3paf2io4File5LseekExiP15SceIoAsyncParam: 0x38D851FF
_ZN3paf2io4File5WriteEPKvj: 0x132F4E2C
+ _ZN3paf2io4File6RemoveEPKc: 0xB18C734D
+ _ZN3paf2io4File6RenameEPKcPKc: 0x05C19D34
+ _ZN3paf2io4File7GetSizeEPKc: 0xAC689344
_ZN3paf2io4File7GetSizeEv: 0x3AB24248
- _ZN3paf2io4File7GetStatEPv: 0x223EAD7D
+ _ZN3paf2io4File7GetStatEP9SceIoStat: 0x223EAD7D
_ZN3paf2io4File9OpenAsyncEPKcii: 0xBDE466D2
_ZN3paf2io4File9PollAsyncEPNS1_11AsyncResultE: 0xEE7027E7
_ZN3paf2io4File9ReadAsyncEPvj: 0xC6220CE0
_ZN3paf2io4File9SyncAsyncEv: 0xF626DC7D
- _ZN3paf2io4File9WaitAsyncEPNS1_11AsyncResultE: 0x7486256D
+ _ZN3paf2io4File9WaitAsyncEPNS0_11AsyncResultE: 0x7486256D
_ZN3paf2io4FileC1Ev: 0xE73FE3E5
_ZN3paf2io4FileC2Ev: 0xA495CC6B
_ZN3paf2io4FileD0Ev: 0xDF3A09D4
_ZN3paf2io4FileD1Ev: 0xEEDD1701
_ZN3paf2io4FileD2Ev: 0xA47418DF
- _ZN3paf2io5IsDirEPKc: 0xB002E56C
- _ZN3paf2io5MkdirEPKci: 0x53EAF163
- _ZN3paf2io6ExistsEPKc: 0x95F14046
- _ZN3paf2io6RemoveEPKc: 0x40573275
+ _ZN3paf2io4Misc10MkdirRWSYSEPKc: 0x198A4C81
+ _ZN3paf2io4Misc15CreateRecursiveEPKci: 0xFDCD1121
+ _ZN3paf2io4Misc15RemoveRecursiveEPKc: 0xDFF0CA06
+ _ZN3paf2io4Misc18SetDefaultPriorityEj: 0xB1E2960A
+ _ZN3paf2io4Misc20CreateRecursiveRWSYSEPKc: 0xE39FA610
+ _ZN3paf2io4Misc5IsDirEPKc: 0xB002E56C
+ _ZN3paf2io4Misc5MkdirEPKci: 0x53EAF163
+ _ZN3paf2io4Misc6ExistsEPKc: 0x95F14046
+ _ZN3paf2io4Misc6RemoveEPKc: 0xC8CA2008
+ _ZN3paf2io4Misc6RenameEPKcPKc: 0x1702CD72
+ _ZN3paf2io4Misc7GetSizeEPKc: 0x1F37F8DA
+ _ZN3paf2io4Misc9RemoveAnyEPKc: 0x40573275
+ _ZN3paf2io4Stat11IsFileOrDirEPKc: 0xEBEC6951
+ _ZN3paf2io4Stat5IsDirEPKc: 0x8C97C54C
+ _ZN3paf2io4Stat6IsFileEPKc: 0x2EAB756A
+ _ZN3paf2io4Stat7GetStatEPKcPS1_: 0x2E402A5C
+ _ZN3paf4Http6SetUnkEii: 0xED1839C2
+ _ZN3paf4Http6SetUrlEPKc: 0xDE80BFD9
+ _ZN3paf4Http6SetUrlEPNS_6StringE: 0xD6D82FF9
+ _ZN3paf4HttpC1Ev: 0x37A4ADA9
+ _ZN3paf4HttpC2Ev: 0xF8213E1C
+ _ZN3paf4Misc13OpenMemDirectEPNS0_10OpenResultEPvj: 0xDEB7A1CF
+ _ZN3paf4Misc16ResumeTouchInputEj: 0x15613EA2
+ _ZN3paf4Misc17SuspendTouchInputEj: 0x0D4B4B67
+ _ZN3paf4Misc7IsDolceEv: 0xAF4FC3F4
+ _ZN3paf4Misc7OpenMemEPNS0_10OpenResultEPvjPi: 0x19FE55A8
+ _ZN3paf4Misc7OpenMemEPNS0_10OpenResultES2_Pi: 0x502E1BB0
+ _ZN3paf4Misc8OpenFileEPNS0_10OpenResultEPKciiPi: 0xB9FB9BD6
+ _ZN3paf4Misc8OpenHttpEPNS0_10OpenResultEPKcPii: 0xA9958563
+ _ZN3paf4Misc8OpenHttpEPNS0_10OpenResultEPKtPii: 0x5888F3EC
_ZN3paf4Sha111BlockResultEPh: 0xB3BF59FC
_ZN3paf4Sha111BlockUpdateEPvj: 0xE6BB459E
_ZN3paf4Sha1C1Ev: 0xB38C53C0
_ZN3paf5Image12GetLastErrorEv: 0xE9A4171E
_ZN3paf5Image12SetLastErrorEi: 0x951B7B59
+ _ZN3paf5Image13GetResolutionEPNS0_10ResolutionEPS0_: 0xEBEBC3F0
_ZN3paf5Image18GetPaletteColorNumEv: 0x9ADD8A26
- _ZN3paf5Image4LoadEPNS0_6ResultEPKcPviiii: 0xFAA808C2
+ _ZN3paf5Image4LoadEPNS0_10LoadResultEPKcPviiii: 0xFAA808C2
_ZN3paf5Image7GetTypeEv: 0xBF87C099
_ZN3paf6ModuleC1EPKciji: 0xB3B5DF38
_ZN3paf6ModuleC2EPKciji: 0xF297D14C
_ZN3paf6ModuleD1Ev: 0x7C86911E
_ZN3paf6ModuleD2Ev: 0xAFD2590E
_ZN3paf6String16WCharToNewStringEPKtPS0_: 0xE690F751
- _ZN3paf7IsDolceEv: 0xAF4FC3F4
+ _ZN3paf7MemFile10CloseAsyncEv: 0x807CCDB4
+ _ZN3paf7MemFile10LseekAsyncExiP15SceIoAsyncParam: 0x7BED7D7F
+ _ZN3paf7MemFile10WriteAsyncEPKvj: 0x494E8CF8
+ _ZN3paf7MemFile11CancelAsyncEv: 0xE3F118A8
+ _ZN3paf7MemFile4OpenEPKcii: 0xC4875233
+ _ZN3paf7MemFile4ReadEPvj: 0x871AFA61
+ _ZN3paf7MemFile4SyncEv: 0x4FBD37E4
+ _ZN3paf7MemFile5CloseEv: 0x4E981745
+ _ZN3paf7MemFile5LseekExiP15SceIoAsyncParam: 0xEF7C46F1
+ _ZN3paf7MemFile5WriteEPKvj: 0xA7756292
+ _ZN3paf7MemFile7GetSizeEv: 0x6784C895
+ _ZN3paf7MemFile7GetTypeEv: 0x4BB2B084
+ _ZN3paf7MemFile8IsOpenedEv: 0x5C9FFE3E
+ _ZN3paf7MemFile9OpenAsyncEPKcii: 0xF2A15807
+ _ZN3paf7MemFile9PollAsyncEPNS1_11AsyncResultE: 0x564A5CA7
+ _ZN3paf7MemFile9ReadAsyncEPvj: 0x44FE3320
+ _ZN3paf7MemFile9SyncAsyncEv: 0x964C67E5
+ _ZN3paf7MemFile9WaitAsyncEPNS1_11AsyncResultE: 0x4B8F8811
+ _ZN3paf7MemFileC1Ev: 0x995435F4
+ _ZN3paf7MemFileC2Ev: 0x19BD0EAB
+ _ZN3paf7MemFileD0Ev: 0x71148CB2
+ _ZN3paf7MemFileD1Ev: 0x8AF3CC45
+ _ZN3paf7MemFileD2Ev: 0xF4D60C5C
_ZN3paf7WString16CharToNewWStringEPKcPS0_: 0xA6ABC0B2
+ _ZN3paf8HttpFile10CloseAsyncEv: 0xCE4DFAD1
+ _ZN3paf8HttpFile10LseekAsyncExiP15SceIoAsyncParam: 0xCD9CCF7F
+ _ZN3paf8HttpFile10WriteAsyncEPKvj: 0x341895C8
+ _ZN3paf8HttpFile11CancelAsyncEv: 0x39910437
+ _ZN3paf8HttpFile4OpenEPNS_4HttpE: 0xD2221E7B
+ _ZN3paf8HttpFile4ReadEPvj: 0xFD8D09E7
+ _ZN3paf8HttpFile4SyncEv: 0x9FE47AA4
+ _ZN3paf8HttpFile5CloseEv: 0x0286E577
+ _ZN3paf8HttpFile5LseekExiP15SceIoAsyncParam: 0x8536F0EB
+ _ZN3paf8HttpFile5WriteEPKvj: 0x47834F0F
+ _ZN3paf8HttpFile7GetSizeEv: 0xB06C6A6B
+ _ZN3paf8HttpFile7GetStatEP9SceIoStat: 0xA004D31D
+ _ZN3paf8HttpFile7GetStatEPKcP9SceIoStat: 0x5155B290
+ _ZN3paf8HttpFile7GetTypeEv: 0x065AF035
+ _ZN3paf8HttpFile8IsOpenedEv: 0x657B46A1
+ _ZN3paf8HttpFile9OpenAsyncEPNS_4HttpE: 0x878D108C
+ _ZN3paf8HttpFile9PollAsyncEPNS1_11AsyncResultE: 0xD5543A0D
+ _ZN3paf8HttpFile9ReadAsyncEPvj: 0x1B7C42FA
+ _ZN3paf8HttpFile9SyncAsyncEv: 0x84E88034
+ _ZN3paf8HttpFile9WaitAsyncEPNS1_11AsyncResultE: 0x7B2F4627
+ _ZN3paf8HttpFileC1Ev: 0x541FFC11
+ _ZN3paf8HttpFileC2Ev: 0x444C9C53
+ _ZN3paf8HttpFileD0Ev: 0x13E9B54C
+ _ZN3paf8HttpFileD1Ev: 0x967C0019
+ _ZN3paf8HttpFileD2Ev: 0xE93C0EBB
_ZN3paf8datetime8DateTime10IsLeapYearEi: 0xA6178A4C
_ZN3paf8datetime8DateTime11SetFromTickEP10SceRtcTick: 0x6EC994D7
_ZN3paf8datetime8DateTime12ParseRFC3339EP10SceRtcTickPKc: 0xE4516D60
@@ -120,15 +219,44 @@ modules:
_ZN3paf8datetime8DateTimeD1Ev: 0x2DBDFC13
_ZN3paf8datetime8DateTimeltEPKS1_: 0x17B87641
_ZN3paf9Allocator10DeallocateEPv: 0xCE97B579
+ _ZN3paf9Allocator11GetFreeSizeEv: 0xC32ECD73
+ _ZN3paf9Allocator12IsCdlgMemoryEv: 0xD9E9BEC8
_ZN3paf9Allocator15AllocateAlignedEjj: 0x04716F15
- _ZN3paf9Allocator15GetMemBlockBaseEPPvS3_: 0x9A80FBC3
- _ZN3paf9Allocator7GetSizeEv: 0x7270DC05
+ _ZN3paf9Allocator7GetInfoEPPvj: 0xD4358B8E
+ _ZN3paf9Allocator7GetNameEv: 0x68B7420B
_ZN3paf9Allocator8AllocateEj: 0x89A1CE78
_ZN3paf9AllocatorC1EPPvjPKcPNS1_3OptE: 0xA2B0BF4D
_ZN3paf9AllocatorC2EPPvjPKcPNS1_3OptE: 0xF36F1C66
_ZN3paf9AllocatorD0Ev: 0x79F13D72
_ZN3paf9AllocatorD1Ev: 0x25238A3A
_ZN3paf9AllocatorD2Ev: 0x4A434F81
+ _ZN3paf9LocalFile10CloseAsyncEv: 0xF035266A
+ _ZN3paf9LocalFile10LseekAsyncExiP15SceIoAsyncParam: 0xCE5848E1
+ _ZN3paf9LocalFile10WriteAsyncEPKvj: 0x79277F10
+ _ZN3paf9LocalFile11CancelAsyncEv: 0xD184BC69
+ _ZN3paf9LocalFile11SetPriorityEj: 0x718411BE
+ _ZN3paf9LocalFile4OpenEPKcii: 0x499F4FAA
+ _ZN3paf9LocalFile4ReadEPvj: 0xBD49E2B3
+ _ZN3paf9LocalFile4SyncEv: 0x4A447655
+ _ZN3paf9LocalFile5CloseEv: 0x00383A45
+ _ZN3paf9LocalFile5LseekExiP15SceIoAsyncParam: 0x99AAA9F7
+ _ZN3paf9LocalFile5WriteEPKvj: 0x5A26025A
+ _ZN3paf9LocalFile7GetSizeEv: 0xAF6A9878
+ _ZN3paf9LocalFile7GetStatEP9SceIoStat: 0x5BEF2351
+ _ZN3paf9LocalFile7GetTypeEv: 0x7D13C35B
+ _ZN3paf9LocalFile8IsOpenedEv: 0x74D9B6F4
+ _ZN3paf9LocalFile9OpenAsyncEPKcii: 0x20F863FD
+ _ZN3paf9LocalFile9PollAsyncEPNS1_11AsyncResultE: 0x3636127A
+ _ZN3paf9LocalFile9ReadAsyncEPvj: 0x0CD740C5
+ _ZN3paf9LocalFile9SyncAsyncEv: 0x439847D5
+ _ZN3paf9LocalFile9WaitAsyncEPNS1_11AsyncResultE: 0x01A03F2E
+ _ZN3paf9LocalFileC1EPNS_9AllocatorE: 0xBEDFC256
+ _ZN3paf9LocalFileC1Ev: 0xDFE98F6E
+ _ZN3paf9LocalFileC2EPNS_9AllocatorE: 0xD2DB93D0
+ _ZN3paf9LocalFileC2Ev: 0x20ACD611
+ _ZN3paf9LocalFileD0Ev: 0xF42CA10F
+ _ZN3paf9LocalFileD1Ev: 0x932FCF17
+ _ZN3paf9LocalFileD2Ev: 0x71A0A754
scePafMiscInitializeInputMethodExt: 0xAC108E50
ScePafResource:
nid: 0x2836DC9B
@@ -286,6 +414,9 @@ modules:
sce_paf_wmemcpy: 0x19B5B91D
sce_paf_wmemmove: 0x468A09B1
sce_paf_wmemset: 0x36890967
+ variables:
+ _ZN3paf6String4nullE: 0x610F2F91
+ _ZN3paf7WString4nullE: 0xB4A712A7
ScePafThread:
nid: 0x54276D19
functions:
@@ -341,6 +472,8 @@ modules:
_ZN3paf6thread6Thread16GetMainThreadUIDEi: 0xC6F80BB3
_ZN3paf6thread6Thread16SetMainThreadUIDEi: 0xFE2DC4FE
_ZN3paf6thread6Thread19InternalThreadEntryEjPv: 0x918D89FC
+ _ZN3paf6thread6Thread3OptC1Ev: 0x5712350E
+ _ZN3paf6thread6Thread3OptC2Ev: 0xCC65DF88
_ZN3paf6thread6Thread4JoinEv: 0xC5F24067
_ZN3paf6thread6Thread4SelfEv: 0x7E669E6E
_ZN3paf6thread6Thread5SleepEj: 0x651F4F81
@@ -363,10 +496,10 @@ modules:
_ZN3paf6thread8JobQueue4ItemD1Ev: 0x88DA7B11
_ZN3paf6thread8JobQueue4ItemD2Ev: 0xE639D331
_ZN3paf6thread8JobQueue4JoinEv: 0x789B263C
- _ZN3paf6thread8JobQueue4PushEPNS1_4ItemE: 0x93F7A9D6
- _ZN3paf6thread8JobQueue7ExecuteEv: 0x88061E60
+ _ZN3paf6thread8JobQueue4PushEPNS1_9ItemParamE: 0x93F7A9D6
+ _ZN3paf6thread8JobQueue6FinishEv: 0x88061E60
+ _ZN3paf6thread8JobQueue7ExecuteEv: 0x90A23616
_ZN3paf6thread8JobQueue7GetSizeEv: 0xA59ABB3B
- _ZN3paf6thread8JobQueue8Execute2Ev: 0x90A23616
_ZN3paf6thread8JobQueueC1EPKcPNS1_3OptE: 0xEEDBA99E
_ZN3paf6thread8JobQueueC2EPKcPNS1_3OptE: 0x7A98D9E5
_ZN3paf6thread8JobQueueD1Ev: 0x1ABA2C42
@@ -377,8 +510,6 @@ modules:
_ZN3paf6thread8SyncCallC2EPKc: 0x94138DD2
_ZN3paf6thread8SyncCallD1Ev: 0xF17CAAB0
_ZN3paf6thread8SyncCallD2Ev: 0xA8DB7042
- _ZN3paf6thread9ThreadOptC1Ev: 0x5712350E
- _ZN3paf6thread9ThreadOptC2Ev: 0xCC65DF88
variables:
_ZN3paf6thread5Queue17s_mainThreadQueueE: 0x83CE85DD
_ZN3paf6thread8JobQueue17s_defaultJobQueueE: 0x83970927
@@ -386,16 +517,20 @@ modules:
ScePafToplevel:
nid: 0x4D9A9DD0
functions:
- _ZN3paf6Plugin13SetRootWidgetEPNS_8Resource7ElementEPNS0_19RootWidgetInitParamE: 0x30B442D9
+ _ZN3paf6Plugin11CreateSceneEPNS_8Resource7ElementEPNS0_14SceneInitParamE: 0x30B442D9
+ _ZN3paf6Plugin11LoadTextureEPNS_8graphics7TextureEPS0_PNS_8Resource7ElementE: 0x38FFFE8E
+ _ZN3paf6Plugin14GetSceneByHashEPNS_8Resource7ElementE: 0xE1DC7DF5
+ _ZN3paf6Plugin14GetWidgetByNumEj: 0x1DF2C6FD
+ _ZN3paf6Plugin14SceneInitParamC1Ev: 0x34FE1331
_ZN3paf6Plugin17TemplateInitParamC1Ev: 0x99300D8B
- _ZN3paf6Plugin19GetRootWidgetByHashEPNS_8Resource7ElementE: 0xE1DC7DF5
- _ZN3paf6Plugin19RootWidgetInitParamC1Ev: 0x34FE1331
_ZN3paf6Plugin21AddWidgetFromTemplateEPNS_6widget6WidgetEPNS_8Resource7ElementEPNS0_17TemplateInitParamE: 0xAB0DB9B0
+ _ZN3paf6Plugin21CreateWidgetWithStyleEPNS_6widget6WidgetEPKcPNS_8Resource7ElementES8_: 0x923F763A
_ZN3paf6Plugin9GetByNameEPKc: 0x004D98CC
+ _ZN3paf6Plugin9GetStringEPNS_8Resource7ElementE: 0x19CEFDA7
_ZN3paf9Framework10LoadPluginEPNS0_15PluginInitParamEPFvPNS_6PluginEES6_: 0xBE479650
+ _ZN3paf9Framework11GetCRStringEPNS_8Resource7ElementE: 0x85A057E3
_ZN3paf9Framework11GetInstanceEv: 0xF72FC59E
- _ZN3paf9Framework11LoadTextureEPNS_8graphics7TextureEPS0_PNS_8Resource7ElementE: 0x7191797C
- _ZN3paf9Framework13GetRootWidgetEv: 0x2FB738A8
+ _ZN3paf9Framework15GetCurrentSceneEv: 0x2FB738A8
_ZN3paf9Framework15LoadPluginAsyncEPNS0_15PluginInitParamEPFvPNS_6PluginEES6_: 0xF702E40A
_ZN3paf9Framework15PluginInitParamC1Ev: 0x400F84CE
_ZN3paf9Framework15PluginInitParamC2Ev: 0x58C1A580
@@ -409,8 +544,10 @@ modules:
_ZN3paf9Framework21GetFwLangBySystemLangEj: 0x1AEDE4E0
_ZN3paf9Framework23CommonResourceInitParamC1Ev: 0x7C8CF5E8
_ZN3paf9Framework23CommonResourceInitParamC2Ev: 0x99DD7850
+ _ZN3paf9Framework23CreateTextureFromMemoryEPNS_8graphics7TextureEPNS_6PluginEPvjNS_5Image4TypeEij: 0xF13D2937
_ZN3paf9Framework23LoadCommonResourceAsyncEPFvvE: 0x3F0DB1BF
_ZN3paf9Framework23LoadCommonResourceAsyncEPNS0_23CommonResourceInitParamEPFvvE: 0x9E5E0C9C
+ _ZN3paf9Framework24LoadTextureCurrentPluginEPNS_8graphics7TextureEPS0_PNS_8Resource7ElementE: 0x7191797C
_ZN3paf9Framework25InitializeDefaultJobQueueEv: 0x7C624212
_ZN3paf9Framework28GetDefaultGraphicsMemoryPoolEv: 0xA0896F7F
_ZN3paf9Framework9InitParam17LoadDefaultParamsEv: 0x907BA948
@@ -423,6 +560,11 @@ modules:
ScePafWidget:
nid: 0x073F8C68
functions:
+ _ZN3paf6widget10ScrollViewC1EPNS0_6WidgetEi: 0x46DE1318
+ _ZN3paf6widget10ScrollViewC2EPNS0_6WidgetEi: 0xCC28BB62
+ _ZN3paf6widget10ScrollViewD0Ev: 0x1EA76BAE
+ _ZN3paf6widget10ScrollViewD1Ev: 0xE024C815
+ _ZN3paf6widget10ScrollViewD2Ev: 0x3EB61E47
_ZN3paf6widget11AppIconBaseC1EPNS0_6WidgetEi: 0x2D4FBF97
_ZN3paf6widget11AppIconBaseC2EPNS0_6WidgetEi: 0xCBB40BFB
_ZN3paf6widget11ImageButtonC1EPNS0_6WidgetEi: 0x1F8C6717
@@ -484,11 +626,11 @@ modules:
_ZN3paf6widget16ProgressBarTouchD0Ev: 0xD13E0F08
_ZN3paf6widget16ProgressBarTouchD1Ev: 0x41ED9224
_ZN3paf6widget16ProgressBarTouchD2Ev: 0x35FA4988
- _ZN3paf6widget16ScrollViewParentC1EPNS0_6WidgetEi: 0x46DE1318
- _ZN3paf6widget16ScrollViewParentC2EPNS0_6WidgetEi: 0xCC28BB62
- _ZN3paf6widget16ScrollViewParentD0Ev: 0x1EA76BAE
- _ZN3paf6widget16ScrollViewParentD1Ev: 0xE024C815
- _ZN3paf6widget16ScrollViewParentD2Ev: 0x3EB61E47
+ _ZN3paf6widget16ScrollViewParentC1EPNS0_6WidgetEi: 0x2F75E51D
+ _ZN3paf6widget16ScrollViewParentC2EPNS0_6WidgetEi: 0xAD03A4B6
+ _ZN3paf6widget16ScrollViewParentD0Ev: 0xF22A1F37
+ _ZN3paf6widget16ScrollViewParentD1Ev: 0x5BC1A611
+ _ZN3paf6widget16ScrollViewParentD2Ev: 0x08C31745
_ZN3paf6widget3BoxC1EPNS0_6WidgetEi: 0xBE20C3D9
_ZN3paf6widget3BoxC2EPNS0_6WidgetEi: 0x5CB29873
_ZN3paf6widget3BoxD0Ev: 0xBA7ACC3E
@@ -517,7 +659,6 @@ modules:
_ZN3paf6widget6Widget11TypeNumSpinEv: 0xE055FBA3
_ZN3paf6widget6Widget11TypeTextBoxEv: 0xBE985097
_ZN3paf6widget6Widget12AssignButtonEj: 0x21125870
- _ZN3paf6widget6Widget12SetDimFactorEfiiiii: 0x543F0959
_ZN3paf6widget6Widget12TypeCheckBoxEv: 0x8EC2F0BF
_ZN3paf6widget6Widget12TypeFileListEv: 0x8A33FF2B
_ZN3paf6widget6Widget12TypeItemSpinEv: 0x9B72616F
@@ -529,11 +670,12 @@ modules:
_ZN3paf6widget6Widget12TypeSlideBarEv: 0x63E55B87
_ZN3paf6widget6Widget12TypeSpinBaseEv: 0xDD6D6411
_ZN3paf6widget6Widget13GetChildByNumEj: 0xB8CA08DA
- _ZN3paf6widget6Widget13PlayAnimationENS1_9AnimationEPFviPS1_iPvES4_: 0x44B22ACA
+ _ZN3paf6widget6Widget13PlayAnimationEfNS1_9AnimationEPFviPS1_iPvES4_: 0x44B22ACA
_ZN3paf6widget6Widget13TypeAppIcon2DEv: 0xB102817A
_ZN3paf6widget6Widget13TypeScrollBarEv: 0xB3878D10
_ZN3paf6widget6Widget14GetChildByHashEPNS_8Resource7ElementEj: 0x9D304F4A
_ZN3paf6widget6Widget14SetFilterColorEPKNS1_5ColorEfiiiii: 0x627CDA4E
+ _ZN3paf6widget6Widget14TypeScrollViewEv: 0xC1680F39
_ZN3paf6widget6Widget15SetTextWithFlag5EPNS_7WStringEi: 0x922FF349
_ZN3paf6widget6Widget15TypeAppIconBaseEv: 0xCDA6ACBE
_ZN3paf6widget6Widget15TypeImageButtonEv: 0xBCDBE29A
@@ -547,21 +689,23 @@ modules:
_ZN3paf6widget6Widget17TypeImageSlidebarEv: 0xBEEE0DCA
_ZN3paf6widget6Widget17TypeSlidingDrawerEv: 0x167D054C
_ZN3paf6widget6Widget18TypeScrollBarTouchEv: 0xF64A59EF
+ _ZN3paf6widget6Widget19SetGraphicsDisabledEi: 0x23C283D3
_ZN3paf6widget6Widget19TypeCompositeButtonEv: 0xE3AFE3D2
_ZN3paf6widget6Widget19TypeCompositeDrawerEv: 0x8A9DDAE6
- _ZN3paf6widget6Widget20PlayAnimationReverseENS1_9AnimationEPFviPS1_iPvES4_: 0xF1176ACC
+ _ZN3paf6widget6Widget20PlayAnimationReverseEfNS1_9AnimationEPFviPS1_iPvES4_: 0xF1176ACC
_ZN3paf6widget6Widget20TypeProgressBarTouchEv: 0xD3057352
_ZN3paf6widget6Widget20TypeScrollViewParentEv: 0xDA94A4AE
_ZN3paf6widget6Widget21RegisterEventCallbackEiPNS1_13EventCallbackEi: 0xFB7FE189
+ _ZN3paf6widget6Widget23RegisterFwEventCallbackEfiPNS1_13EventCallbackE: 0x6E3EEF4E
_ZN3paf6widget6Widget23UnregisterEventCallbackEiii: 0xB98D49AD
- _ZN3paf6widget6Widget25RegisterLoopEventCallbackEiPNS1_13EventCallbackE: 0x6E3EEF4E
- _ZN3paf6widget6Widget27UnregisterLoopEventCallbackEi: 0x8F09D12E
+ _ZN3paf6widget6Widget25UnregisterFwEventCallbackEi: 0x8F09D12E
_ZN3paf6widget6Widget6EnableEi: 0x8F1A3A59
_ZN3paf6widget6Widget7DisableEi: 0xA1173889
_ZN3paf6widget6Widget7SetSizeEPK11SceFVector4fiiiii: 0x046AA07D
_ZN3paf6widget6Widget7SetZoomEPK11SceFVector4fiiiii: 0xEE467CF8
_ZN3paf6widget6Widget7TypeBoxEv: 0x3A28435A
_ZN3paf6widget6Widget8GetColorENS1_5Color4TypeEiPS2_: 0xF3281F1C
+ _ZN3paf6widget6Widget8SetAlphaEfiiiii: 0x543F0959
_ZN3paf6widget6Widget8SetColorENS1_5Color4TypeEiiPKS2_: 0xCD20EF38
_ZN3paf6widget6Widget8TypeTextEv: 0x45AA2058
_ZN3paf6widget6Widget9GetParentEv: 0xCFA1EB7A