I'm almost to that part of the game, so I'll try to add it. I'm also trying to get Ashley's health offset and add that in as well.
Printable View
nice job on this trainer Errorjack
Thanks guys. EDIT: ADDED 3 NEW CHEATS
I updated 2 cheats to a massive degree. Saves are now always 0 and money becomes max(99999999 PTAS) and Infinite Money. The 3rd cheat is 999 ammo to all guns. It's still being developed so it only works with 3 guns right now.
No need to find all guns..
Here my source...
Code:#include "common.h"
/*
if( InfHealth== TRUE ) // Leon
{
BYTE Rings[2] = { 0x15, 0x3b };
memcpy( (void*)0x8291D854, Rings, 2);
}
if( InfHealthA== TRUE ) //Ashley
{
BYTE Rings[2] = { 0x04, 0x90 };
memcpy( (void*)0x8291D858, Rings, 2);
}
if( InfPita== TRUE )
{
BYTE Pita[4] = { 0x00, 0x0f, 0x42, 0x3f };
memcpy( (void*)0x8291D848, Pita, 4);
}
*/
UINT32 g_titleID = 0x5454086B;
BOOL InfHealth = FALSE;
BOOL InfPita = FALSE;
VOID ShowTrainerMain()
{
Prompt = XShowMessageBoxUI(0, L"XPGamesaves.com - XPGMike", L"Resident Evil 4 v0.2\r\nView Codes: DPAD-DOWN(x4)", ARRAYSIZE(g_strButtons), g_strButtons, 0, XMB_PASSCODEMODE, &g_mb_result, &g_xol);
}
VOID ProcessButtonPress( MESSAGEBOX_RESULT g_mb_result )
{
if( g_mb_result.rgwPasscode[0] == DPAD_DOWN && g_mb_result.rgwPasscode[1] == DPAD_DOWN && g_mb_result.rgwPasscode[2] == DPAD_DOWN && g_mb_result.rgwPasscode[3] == DPAD_DOWN )
{
Sleep(500);
XShowMessageBoxUI(0, L"Viewing All Codes", L"Inf Health (LEON & ASHLEY)X(x4)\r\nInf Ammo LB(x4)\r\nInf Pita RB(x4)\r\nTotal Saves Always 0 DPAD-LEFT(x4)\r\n", ARRAYSIZE(g_strButtons), g_strButtons, 0, XMB_NOICON, &g_mb_result, &g_xol);
memset( &g_mb_result.rgwPasscode[0], 0x00, 0x02 );
memset( &g_mb_result.rgwPasscode[1], 0x00, 0x02 );
memset( &g_mb_result.rgwPasscode[2], 0x00, 0x02 );
memset( &g_mb_result.rgwPasscode[3], 0x00, 0x02 );
Prompt = 0x9999;
}
if( g_mb_result.rgwPasscode[0] == X_BUTTON && g_mb_result.rgwPasscode[1] == X_BUTTON && g_mb_result.rgwPasscode[2] == X_BUTTON && g_mb_result.rgwPasscode[3] == X_BUTTON )
{
Sleep(500);
XShowMessageBoxUI(0, L"Cheat Enabled Successfully", L"Inf Health(LEON & ASHLEY)\r\n", ARRAYSIZE(g_strButtons), g_strButtons, 0, XMB_NOICON, &g_mb_result, &g_xol);
InfHealth = TRUE;
memset( &g_mb_result.rgwPasscode[0], 0x00, 0x02 );
memset( &g_mb_result.rgwPasscode[1], 0x00, 0x02 );
memset( &g_mb_result.rgwPasscode[2], 0x00, 0x02 );
memset( &g_mb_result.rgwPasscode[3], 0x00, 0x02 );
Prompt = 0x9999;
}
if( g_mb_result.rgwPasscode[0] == LEFT_BUMPER && g_mb_result.rgwPasscode[1] == LEFT_BUMPER && g_mb_result.rgwPasscode[2] == LEFT_BUMPER && g_mb_result.rgwPasscode[3] == LEFT_BUMPER )
{
Sleep(500);
XShowMessageBoxUI(0, L"Cheat Enabled Successfully", L"Inf Ammo\r\n", ARRAYSIZE(g_strButtons), g_strButtons, 0, XMB_NOICON, &g_mb_result, &g_xol);
BYTE Nob[4] = { 0x60, 0x00, 0x00, 0x00 };
memcpy( (void*)0x8232FFFC, Nob, 4);
memset( &g_mb_result.rgwPasscode[0], 0x00, 0x02 );
memset( &g_mb_result.rgwPasscode[1], 0x00, 0x02 );
memset( &g_mb_result.rgwPasscode[2], 0x00, 0x02 );
memset( &g_mb_result.rgwPasscode[3], 0x00, 0x02 );
Prompt = 0x9999;
}
if( g_mb_result.rgwPasscode[0] == RIGHT_BUMPER && g_mb_result.rgwPasscode[1] == RIGHT_BUMPER && g_mb_result.rgwPasscode[2] == RIGHT_BUMPER && g_mb_result.rgwPasscode[3] == RIGHT_BUMPER )
{
Sleep(500);
XShowMessageBoxUI(0, L"Cheat Enabled Successfully", L"Inf Pita\r\n", ARRAYSIZE(g_strButtons), g_strButtons, 0, XMB_NOICON, &g_mb_result, &g_xol);
InfPita = TRUE;
memset( &g_mb_result.rgwPasscode[0], 0x00, 0x02 );
memset( &g_mb_result.rgwPasscode[1], 0x00, 0x02 );
memset( &g_mb_result.rgwPasscode[2], 0x00, 0x02 );
memset( &g_mb_result.rgwPasscode[3], 0x00, 0x02 );
Prompt = 0x9999;
}
if( g_mb_result.rgwPasscode[0] == DPAD_LEFT && g_mb_result.rgwPasscode[1] == DPAD_LEFT && g_mb_result.rgwPasscode[2] == DPAD_LEFT && g_mb_result.rgwPasscode[3] == DPAD_LEFT )
{
Sleep(500);
XShowMessageBoxUI(0, L"Cheat Enabled Successfully", L"Total Saves Always 0\r\n", ARRAYSIZE(g_strButtons), g_strButtons, 0, XMB_NOICON, &g_mb_result, &g_xol);
BYTE Saves[2] = { 0x00, 0x00 };
memcpy( (void*)0x8291D83C, Saves, 2);
BYTE Nob[4] = { 0x60, 0x00, 0x00, 0x00 };
memcpy( (void*)0x82513F6C, Nob, 4);
memset( &g_mb_result.rgwPasscode[0], 0x00, 0x02 );
memset( &g_mb_result.rgwPasscode[1], 0x00, 0x02 );
memset( &g_mb_result.rgwPasscode[2], 0x00, 0x02 );
memset( &g_mb_result.rgwPasscode[3], 0x00, 0x02 );
Prompt = 0x9999;
}
}
Thanks a bunch. Hopefully it works with NTSC. I also wanted to find out how XShowMessageBoxUI worked and you showed me that too. :D
EDIT: Never mind, don't understand how to use XShowMessageBoxUI. :/
EDIT 2: Updated the trainer to fix up few things and add in things thanks to xJACKASSx!
EDIT 3:
Good news everyone, I added MAX HIT AND SCORE GALLERY SHOOTING to the Trainer. It'll be updated soon!