Jump to content
RealModScene
Sign in to follow this  
xboxer666

FSD update covers with GaDaBaMa unknown ContentItemHash

Recommended Posts

Hi.

I'm updating FSD covers without using the console at all, just using xbox 360 slim hdd drive connected to pc and GaDaBaMa software, it works great.

 

But there is one problem with this, new games are added to FSD database only after i connect the hdd back to xbox and run it once to scan and add new games, only then i will see the new games in GaDaBaMa. But the thing is, i quite often have only the hdd and no xbox at place.

 

I wanted to eliminate this, so i decided i will add the new games to FSD content.db myself, manually editing table data using a sql lite manager, then use GaDaBaMa which will now see the new games.

 

And it would all work, but there is one column in FSD ContentItems table (where the found games are placed) which i don't know how to calculate and fill, it is the ContentItemHash value.

 

I don't want brick something, so can someone tell mi what this value is and how to calculate it? Maybe it can be empty?

I only noticed that every content has it, be it a game, some xex tool, god container, so i assumed it is some file hash, for example xex tools don't need title id, but this hash is there even for them, but don't know how to calculate it.

 

Any help appreciated.

 

 

 

 

  • Like 1

Share this post


Link to post
Share on other sites

Hi.

I'm updating FSD covers without using the console at all, just using xbox 360 slim hdd drive connected to pc and GaDaBaMa software, it works great.

 

But there is one problem with this, new games are added to FSD database only after i connect the hdd back to xbox and run it once to scan and add new games, only then i will see the new games in GaDaBaMa. But the thing is, i quite often have only the hdd and no xbox at place.

 

I wanted to eliminate this, so i decided i will add the new games to FSD content.db myself, manually editing table data using a sql lite manager, then use GaDaBaMa which will now see the new games.

 

And it would all work, but there is one column in FSD ContentItems table (where the found games are placed) which i don't know how to calculate and fill, it is the ContentItemHash value.

 

I don't want brick something, so can someone tell mi what this value is and how to calculate it? Maybe it can be empty?

I only noticed that every content has it, be it a game, some xex tool, god container, so i assumed it is some file hash, for example xex tools don't need title id, but this hash is there even for them, but don't know how to calculate it.

 

Any help appreciated.

I believe the hash is part of the default.xex/GOD header...

  • Like 1

Share this post


Link to post
Share on other sites

Interesting, is there a way to read it? Some software? Somebody can verify this?

But this makes me thinking, why it is needed, there are already the content item path, should be enough to run a game, i've checked FSD source and it is running game just by path.

Share this post


Link to post
Share on other sites

Interesting, is there a way to read it? Some software? Somebody can verify this?

But this makes me thinking, why it is needed, there are already the content item path, should be enough to run a game, i've checked FSD source and it is running game just by path.

It's used during the scan...

Share this post


Link to post
Share on other sites

Don't have the latest source, but found it was a md5 timestamp back i fsd 2 days.

string GenerateTimestampMd5( void )
{
	SYSTEMTIME LocalSysTime;
	GetLocalTime( &LocalSysTime );
	string szFileName = sprintfaA("%04d%02d%02d%02d%02d%02d%02d", 
		LocalSysTime.wYear, 
		LocalSysTime.wMonth, 
		LocalSysTime.wDay, 
		LocalSysTime.wHour, 
		LocalSysTime.wMinute, 
		LocalSysTime.wSecond, 
		LocalSysTime.wMilliseconds
	);				

	BYTE m_Serial[0x10];
	ZeroMemory(m_Serial, 0x10);
	XeCryptMd5((BYTE*)szFileName.c_str(), szFileName.length(), NULL, 0, NULL, 0, m_Serial, 0x10);

	// Get our serial as a string
	CHAR serialStr[41]; serialStr[40] = 0; UINT outLen = 0x40;
	ZeroMemory(serialStr, 41);
	GetBytesString(m_Serial, 0x10, serialStr, &outLen);
	
	return (string)serialStr;
}

It wasn't also used in scan.

So, no direct answer, i will need to experiment with this.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...