Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 26 additions & 54 deletions src/SB/Core/x/xpkrsvc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,26 @@

extern char xpkrsvc_strings[];

extern st_PACKER_READ_FUNCS g_pkr_read_funcmap_original;
extern st_PACKER_READ_FUNCS g_pkr_read_funcmap; // = g_pkr_read_funcmap_original;
// Square and JESway: Function relocation issues will resolve themselves when all the functions
// here 100% match, as it is apparently related to the instruction size of each function
static st_PACKER_READ_FUNCS g_pkr_read_funcmap_original = { 1,
PKR_ReadInit,
PKR_ReadDone,
PKR_LoadLayer,
PKR_GetAssetSize,
PKR_LoadAsset,
PKR_AssetByType,
PKR_AssetCount,
PKR_IsAssetReady,
PKR_SetActive,
PKR_AssetName,
PKR_GetBaseSector,
PKR_GetAssetInfo,
PKR_GetAssetInfoByType,
PKR_PkgHasAsset,
PKR_getPackTimestamp,
PKR_Disconnect };
static st_PACKER_READ_FUNCS g_pkr_read_funcmap = g_pkr_read_funcmap_original;
st_PACKER_READ_DATA g_readdatainst[16] = {};

st_HIPLOADFUNCS* g_hiprf;
Expand All @@ -34,8 +52,6 @@ st_PACKER_READ_FUNCS* PKRGetReadFuncs(S32 apiver)
}
}

#ifdef NON_MATCHING
// Small reordering
S32 PKRStartup()
{
if (g_packinit++ == 0)
Expand All @@ -46,7 +62,6 @@ S32 PKRStartup()
}
return g_packinit;
}
#endif

S32 PKRShutdown()
{
Expand Down Expand Up @@ -195,8 +210,6 @@ void PKR_ReadDone(st_PACKER_READ_DATA* pr)
g_loadlock &= ~(1 << lockid);
}

#ifdef NON_MATCHING
// Incorrect (but equivalent) logic for comparing the loadflag
S32 PKR_SetActive(st_PACKER_READ_DATA* pr, en_LAYER_TYPE layer)
{
S32 result;
Expand Down Expand Up @@ -249,7 +262,6 @@ S32 PKR_SetActive(st_PACKER_READ_DATA* pr, en_LAYER_TYPE layer)

return rc;
}
#endif

S32 PKR_parse_TOC(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
{
Expand Down Expand Up @@ -507,8 +519,6 @@ S32 PKR_layerTypeNeedsXForm(en_LAYER_TYPE layer)
}
}

#ifdef NON_MATCHING
//Regalloc
S32 PKR_findNextLayerToLoad(st_PACKER_READ_DATA** work_on_pkg, st_PACKER_LTOC_NODE** next_layer)
{
st_PACKER_READ_DATA* tmppr;
Expand Down Expand Up @@ -560,10 +570,7 @@ S32 PKR_findNextLayerToLoad(st_PACKER_READ_DATA** work_on_pkg, st_PACKER_LTOC_NO

return *next_layer != NULL;
}
#endif

#ifdef NON_MATCHING
//Regalloc
void PKR_updateLayerAssets(st_PACKER_LTOC_NODE* laynode)
{
st_PACKER_ATOC_NODE* tmpass = NULL;
Expand Down Expand Up @@ -600,7 +607,6 @@ void PKR_updateLayerAssets(st_PACKER_LTOC_NODE* laynode)
}
}
}
#endif

void PKR_xformLayerAssets(st_PACKER_LTOC_NODE* laynode)
{
Expand Down Expand Up @@ -628,7 +634,6 @@ void PKR_xformLayerAssets(st_PACKER_LTOC_NODE* laynode)
}
}

//
void PKR_xform_asset(st_PACKER_ATOC_NODE* assnode, S32 dumpable_layer)
{
if (!(assnode->infoflag & 4))
Expand Down Expand Up @@ -713,7 +718,7 @@ S32 PKR_LoadLayer(st_PACKER_READ_DATA* pr, en_LAYER_TYPE layer)
return 0;
}

void* PKR_LoadAsset(st_PACKER_READ_DATA* pr, U32 aid, const char*, void*)
void* PKR_LoadAsset(st_PACKER_READ_DATA* pr, U32 aid, char*, void*)
{
return PKR_FindAsset(pr, aid);
}
Expand Down Expand Up @@ -873,7 +878,7 @@ S32 PKR_GetAssetInfo(st_PACKER_READ_DATA* pr, U32 aid, st_PKR_ASSET_TOCINFO* toc
}

S32 PKR_GetAssetInfoByType(st_PACKER_READ_DATA* pr, U32 type, S32 idx,
st_PKR_ASSET_TOCINFO* tocainfo)
st_PKR_ASSET_TOCINFO* tocainfo)
{
memset(tocainfo, 0, sizeof(st_PKR_ASSET_TOCINFO));
if (idx < 0)
Expand Down Expand Up @@ -925,8 +930,8 @@ S32 PKR_PkgHasAsset(st_PACKER_READ_DATA* pr, U32 aid)
return rc;
}

S32 PKR_FRIEND_assetIsGameDup(U32 aid, const st_PACKER_READ_DATA* skippr, S32 oursize,
U32 ourtype, U32 chksum, char*)
S32 PKR_FRIEND_assetIsGameDup(U32 aid, const st_PACKER_READ_DATA* skippr, S32 oursize, U32 ourtype,
U32 chksum, char*)
{
S32 is_dup = 0;
if (aid == 0x7ab6743a)
Expand Down Expand Up @@ -1116,8 +1121,6 @@ S32 LOD_r_PACK(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
return 1;
}

#ifdef NON_MATCHING
// reordering
S32 LOD_r_PVER(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
{
S32 ver = 0;
Expand Down Expand Up @@ -1146,17 +1149,13 @@ S32 LOD_r_PVER(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
}
return 1;
}
#endif

#ifdef NON_MATCHING
// reordering
S32 LOD_r_PFLG(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
{
S32 flg = 0;
g_hiprf->readLongs(pkg, &flg, 1);
return 1;
}
#endif

S32 LOD_r_PCNT(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
{
Expand All @@ -1171,8 +1170,6 @@ S32 LOD_r_PCNT(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
return 1;
}

#ifdef NON_MATCHING
// need all of .rodata to generate for the OK
S32 LOD_r_PCRT(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
{
S32 time = 0;
Expand All @@ -1187,7 +1184,6 @@ S32 LOD_r_PCRT(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
}
return 1;
}
#endif

S32 LOD_r_PMOD(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
{
Expand All @@ -1197,10 +1193,8 @@ S32 LOD_r_PMOD(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
return 1;
}

#ifdef NON_MATCHING
// String data
S32 ValidatePlatform(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr, S32 plattag, char* plat,
char* vid, char* lang, char* title)
char* vid, char* lang, char* title)
{
char fullname[128] = {};
sprintf(fullname, "%s %s %s %s", plat, vid, lang, title);
Expand Down Expand Up @@ -1273,10 +1267,7 @@ S32 ValidatePlatform(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr, S32 plattag,
}
return 1;
}
#endif

#ifdef NON_MATCHING
// Orderings and Regalloc
S32 LOD_r_PLAT(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
{
S32 result = 1;
Expand All @@ -1300,7 +1291,6 @@ S32 LOD_r_PLAT(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
}
return result;
}
#endif

S32 LOD_r_DICT(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
{
Expand Down Expand Up @@ -1344,15 +1334,12 @@ S32 LOD_r_ATOC(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
return 1;
}

#ifdef NON_MATCHING
// reordering
S32 LOD_r_AINF(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
{
S32 ival = 0;
g_hiprf->readLongs(pkg, &ival, 1);
return 1;
}
#endif

S32 LOD_r_AHDR(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
{
Expand Down Expand Up @@ -1399,16 +1386,14 @@ S32 LOD_r_AHDR(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
}

S32 isdup = PKR_FRIEND_assetIsGameDup(assnode->aid, pr, assnode->d_size, assnode->asstype,
assnode->d_chksum, NULL);
assnode->d_chksum, NULL);
if (isdup)
{
assnode->loadflag |= 0x100000;
}
return 1;
}

#ifdef NON_MATCHING
// uses reordering and uses .rodata
S32 LOD_r_ADBG(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr, st_PACKER_ATOC_NODE* assnode)
{
S32 ival = 0;
Expand All @@ -1430,7 +1415,6 @@ S32 LOD_r_ADBG(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr, st_PACKER_ATOC_NODE

return 1;
}
#endif

S32 LOD_r_LTOC(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
{
Expand All @@ -1452,18 +1436,13 @@ S32 LOD_r_LTOC(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
return 1;
}

#ifdef NON_MATCHING
// reordering
S32 LOD_r_LINF(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
{
S32 ival = 0;
g_hiprf->readLongs(pkg, &ival, 1);
return 1;
}
#endif

#ifdef NON_MATCHING
// reordering
S32 LOD_r_LHDR(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
{
S32 i;
Expand Down Expand Up @@ -1512,7 +1491,6 @@ S32 LOD_r_LHDR(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
}
return 1;
}
#endif

S32 LOD_r_LDBG(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr, st_PACKER_LTOC_NODE* laynode)
{
Expand Down Expand Up @@ -1545,15 +1523,12 @@ S32 LOD_r_STRM(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
return 1;
}

#ifdef NON_MATCHING
// reordering
S32 LOD_r_DHDR(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
{
S32 ivar = 0;
g_hiprf->readLongs(pkg, &ivar, 1);
return 1;
}
#endif

S32 LOD_r_DPAK(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr)
{
Expand Down Expand Up @@ -1585,8 +1560,6 @@ st_PACKER_ASSETTYPE* PKR_type2typeref(U32 asstype, st_PACKER_ASSETTYPE* types)
return da_type;
}

#if 0
// Probably func match, weird regalloc
void PKR_bld_typecnt(st_PACKER_READ_DATA* pr)
{
st_PACKER_LTOC_NODE* laynode;
Expand Down Expand Up @@ -1674,7 +1647,6 @@ void PKR_bld_typecnt(st_PACKER_READ_DATA* pr)
}
}
}
#endif

S32 PKR_typeHdlr_idx(st_PACKER_READ_DATA* pr, U32 type)
{
Expand Down
14 changes: 7 additions & 7 deletions src/SB/Core/x/xpkrsvc.h
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ struct st_PACKER_READ_DATA
struct st_PACKER_READ_FUNCS
{
U32 api_ver;
st_PACKER_READ_DATA* (*Init)(void*, const char*, U32, S32*, st_PACKER_ASSETTYPE*);
st_PACKER_READ_DATA* (*Init)(void*, char*, U32, S32*, st_PACKER_ASSETTYPE*);
void (*Done)(st_PACKER_READ_DATA*);
S32 (*LoadLayer)(st_PACKER_READ_DATA*, en_LAYER_TYPE);
U32 (*GetAssetSize)(st_PACKER_READ_DATA*, U32);
Expand All @@ -136,7 +136,7 @@ struct st_PACKER_READ_FUNCS
char* (*AssetName)(st_PACKER_READ_DATA*, U32);
U32 (*GetBaseSector)(st_PACKER_READ_DATA*);
S32 (*GetAssetInfo)(st_PACKER_READ_DATA*, U32, st_PKR_ASSET_TOCINFO*);
S32 (*GetAssetInfoByType)(st_PACKER_READ_DATA*, U32, S32, const st_PKR_ASSET_TOCINFO*);
S32 (*GetAssetInfoByType)(st_PACKER_READ_DATA*, U32, S32, st_PKR_ASSET_TOCINFO*);
S32 (*PkgHasAsset)(st_PACKER_READ_DATA*, U32);
U32 (*PkgTimeStamp)(st_PACKER_READ_DATA*);
void (*PkgDisconnect)(st_PACKER_READ_DATA*);
Expand Down Expand Up @@ -164,7 +164,7 @@ void PKR_xformLayerAssets(st_PACKER_LTOC_NODE* laynode);
void PKR_xform_asset(st_PACKER_ATOC_NODE* assnode, S32 dumpable_layer);
void* PKR_FindAsset(st_PACKER_READ_DATA* pr, U32 aid);
S32 PKR_LoadLayer(st_PACKER_READ_DATA* pr, en_LAYER_TYPE layer);
void* PKR_LoadAsset(st_PACKER_READ_DATA* pr, U32 aid, const char*, void*);
void* PKR_LoadAsset(st_PACKER_READ_DATA* pr, U32 aid, char*, void*);
U32 PKR_GetAssetSize(st_PACKER_READ_DATA* pr, U32 aid);
S32 PKR_AssetCount(st_PACKER_READ_DATA* pr, U32 type);
void* PKR_AssetByType(st_PACKER_READ_DATA* pr, U32 type, S32 idx, U32* size);
Expand All @@ -176,10 +176,10 @@ char* PKR_AssetName(st_PACKER_READ_DATA* pr, U32 aid);
U32 PKR_GetBaseSector(st_PACKER_READ_DATA* pr);
S32 PKR_GetAssetInfo(st_PACKER_READ_DATA* pr, U32 aid, st_PKR_ASSET_TOCINFO* tocainfo);
S32 PKR_GetAssetInfoByType(st_PACKER_READ_DATA* pr, U32 type, S32 idx,
st_PKR_ASSET_TOCINFO* tocainfo);
st_PKR_ASSET_TOCINFO* tocainfo);
S32 PKR_PkgHasAsset(st_PACKER_READ_DATA* pr, U32 aid);
S32 PKR_FRIEND_assetIsGameDup(U32 aid, const st_PACKER_READ_DATA* skippr, S32 oursize,
U32 ourtype, U32 chksum, char*);
S32 PKR_FRIEND_assetIsGameDup(U32 aid, const st_PACKER_READ_DATA* skippr, S32 oursize, U32 ourtype,
U32 chksum, char*);
S32 PKR_makepool_anode(st_PACKER_READ_DATA* pr, S32 cnt);
void PKR_kiilpool_anode(st_PACKER_READ_DATA* pr);
st_PACKER_ATOC_NODE* PKR_newassnode(st_PACKER_READ_DATA* pr, U32 aid);
Expand All @@ -195,7 +195,7 @@ S32 LOD_r_PCNT(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr);
S32 LOD_r_PCRT(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr);
S32 LOD_r_PMOD(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr);
S32 ValidatePlatform(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr, S32 plattag, char* plat,
char* vid, char* lang, char* title);
char* vid, char* lang, char* title);
S32 LOD_r_PLAT(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr);
S32 LOD_r_DICT(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr);
S32 LOD_r_ATOC(st_HIPLOADDATA* pkg, st_PACKER_READ_DATA* pr);
Expand Down
7 changes: 4 additions & 3 deletions src/SB/Core/x/xstransvc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@ S32 xSTGetAssetInfoByType(U32 type, S32 idx, st_PKR_ASSET_TOCINFO* ainfo)
{
S32 rc = 0;
S32 sum = 0;
const st_PKR_ASSET_TOCINFO tocinfo = { 0, NULL, 0, 0, 0, NULL };
st_PKR_ASSET_TOCINFO tocinfo = { 0, NULL, 0, 0, 0, NULL };
memset(ainfo, 0, sizeof(st_PKR_ASSET_TOCINFO));

S32 found = XST_cnt_locked();
Expand All @@ -382,7 +382,7 @@ S32 xSTGetAssetInfoByType(U32 type, S32 idx, st_PKR_ASSET_TOCINFO* ainfo)
break;
}
}
sum += cnt;
sum += cnt;
}

return rc;
Expand Down Expand Up @@ -438,7 +438,8 @@ char* xST_xAssetID_HIPFullPath(U32 aid, U32* sceneID)
static S32 XST_PreLoadScene(st_STRAN_SCENE* sdata, const char* name)
{
S32 buf = 0;
st_PACKER_READ_DATA* spkg = g_pkrf->Init(sdata->userdata, name, 0x2e, &buf, g_typeHandlers);
st_PACKER_READ_DATA* spkg =
g_pkrf->Init(sdata->userdata, (char*)name, 0x2e, &buf, g_typeHandlers);
sdata->spkg = spkg;
if (sdata->spkg != NULL)
{
Expand Down
1 change: 0 additions & 1 deletion src/SB/Core/x/xstransvc.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ struct st_STRAN_SCENE
char fnam[256];
};


struct st_STRAN_DATA
{
st_STRAN_SCENE hipscn[16];
Expand Down