nicholasbroo
Knowledge maybe Power, but Respect matters.
Well, like shinda said, you could 'search' a game upon execution or you simply can be like me and debug on game execution. But that's just me.What is this used for?
Well, you can use it to use it for game detection.
These are the types of posts, I feel that need some education.
So, I say screw it and release a tutorial to learn. Not Flaming, just saying. We all gotta learn sometime.
Before we start this tutorial in regular today, I'd like to just say this please.
- I will not allow flaming here, only constructive criticism, anything more and your post will be reported, ignored and deleted.
Anyways let's get started.
Credits: CHEMO - 3k TID Dump for the Example used below.
- Always, Use the Xbox360's SDK documentation & XAM.xex research at your advantage over everything. It may save you one day. I cannot stress this enough.
S7 Pro
S7 Pro's way: The smart way.
Call: XamGetCurrentTitleId and cross-check.
SDK:
C++:
NTSYSAPI //__declspec(dllimport)
EXPORTNUM(463) //0x1CF ResolveFunction Export
DWORD //Storage Type
NTAPI //__stdcall
XamGetCurrentTitleId(
VOID
);
C++:
void CheckCurrentTID()
DWORD Status = XamGetCurrentTitleId();
if(Status == 0xFFFE07D1)
{
DbgPrint("You are currently on the dashboard.");
}
else
{
//Return our TID
DbgPrint("[NickH4X] Detected a Title Identification Change: 0x%08X\n", Status);
}
MY WAY [2 examples]
Nicholasbroo's way: The optional way.
Call: XamGetCurrentTitleId and cross-check.
Here's a great example from above, let's check if the following games are running when we play them. Credit to CHEMO for the post.
Code:
62 - 555307D5 - Ghost Recon Advanced Warfighter
63 - 555307F0 - Ghost Recon Advanced Warfighter 2
64 - 545407F2 - Grand Theft Auto IV
65 - 415607D3 - Gun
66 - 4D53880C - Halo 3 Beta
67 - 584107E2 - Hardwood Backgammon
68 - 584107D3 - Hardwood Hearts
69 - 584107E4 - Hardwood Spades
70 - 584107D1 - Hexic HD
71 - 534307DB - Hitman: Blood Money
72 - 584107EA - Jewel Quest
For Multiple title names and you want to really just be smarter just return the char. [%s]
Pros: - Saves so much time from writing it all the time. Trust me.
Or you can write them out like this.
Pros: - Saves so much time from writing it all the time. Trust me.
C++:
void CheckCurrentTID()
char GRAW[]="Ghost Recon Advanced Warfighter";
char HardWood[]="Hardwood";
DWORD Status = XamGetCurrentTitleId(); //Setup our Storage for status.
switch(Status)
{
case 0xFFFE07D1: DbgPrint("You are currently on the dashboard."); break;
case 0x555307F0: DbgPrint("You are currently playing: %s.", GRAW); break;
case 0x555307D5: DbgPrint("You are currently playing: %s 2.", GRAW); break;
case 0x545407F2: DbgPrint("You are currently playing: Grand Theft Auto IV."); break;
case 0x415607D3: DbgPrint("You are currently playing: Gun."); break;
case 0x4D53880C: DbgPrint("You are currently playing: Halo 3 Beta."); break;
case 0x584107E2: DbgPrint("You are currently playing: %s Backgammon.", HardWood); break;
case 0x584107D3: DbgPrint("You are currently playing: %s Hearts.", HardWood); break;
case 0x584107E4: DbgPrint("You are currently playing: %s Spades.", HardWood); break;
case 0x584107D1: DbgPrint("You are currently playing: Hexic HD."); break;
case 0x534307DB: DbgPrint("You are currently playing: Hitman: Blood Money."); break;
case 0x584107EA: DbgPrint("You are currently playing: Jewel Quest."); break;
case default: DbgPrint("[NickH4X] Detected a Title Identification Change: 0x%08X\n", Status); break;
}
Or you can write them out like this.
C++:
void CheckCurrentTID()
DWORD Status = XamGetCurrentTitleId(); //Setup our Storage for status.
switch(Status)
{
case 0xFFFE07D1: DbgPrint("You are currently on the dashboard."); break;
case 0x555307F0: DbgPrint("You are currently playing: Ghost Recon Advanced Warfighter."); break;
case 0x555307D5: DbgPrint("You are currently playing: Ghost Recon Advanced Warfighter 2."); break;
case 0x545407F2: DbgPrint("You are currently playing: Grand Theft Auto IV."); break;
case 0x415607D3: DbgPrint("You are currently playing: Gun."); break;
case 0x4D53880C: DbgPrint("You are currently playing: Halo 3 Beta."); break;
case 0x584107E2: DbgPrint("You are currently playing: Hardwood Backgammon."); break;
case 0x584107D3: DbgPrint("You are currently playing: Hardwood Hearts."); break;
case 0x584107E4: DbgPrint("You are currently playing: Hardwood Spades."); break;
case 0x584107D1: DbgPrint("You are currently playing: Hexic HD."); break;
case 0x534307DB: DbgPrint("You are currently playing: Hitman: Blood Money."); break;
case 0x584107EA: DbgPrint("You are currently playing: Jewel Quest."); break;
case default: DbgPrint("[NickH4X] Detected a Title Identification Change: 0x%08X\n", Status); break;
}
Call: XamIsCurrentTitleDash and cross-check.
SDK:
C++:
NTSYSAPI //__declspec(dllimport)
EXPORTNUM(462)//0x1CE ResolveFunction Export
BOOL //Storage Type
NTAPI //__stdcall
XamIsCurrentTitleDash(
VOID
);
C++:
BOOL isUserDashBoarded() //Setup our Boolean
{
BOOL Dashboard = XamIsCurrentTitleDash();
if(Dashboard != TRUE) //Check if not equal to true.
{
DbgPrint("We're not on the Xbox360 dashboard.");
}
}
THE LOG
C++:
xbWatson: Xbox is restarting
Response: 0x01 -> Showing System Menu 2.
Response: 0x03. -> Checking profile status.
[XBL Account Status] ***** This account is signed into live. Have fun on Project Liberation v15. *****
[XBL Account] Signed in Gamertag: AssuredCone7452
[XBL Account] AssuredCone7452's XUID = 0x000901F
[XBL Signon State]: Online, Profile signed in to XBL.
xbWatson: Xbox is restarting
xbWatson: Xbox is restarting
[NickH4X] Detected a Title Identification Change: 0x4D53085B
Last edited: