[GTA5/Tutorial/Sour...
 
Notifications
Clear all

[GTA5/Tutorial/Source CODE] How To Create thread only when Needed ! [SPRX]


KranK
Posts: 336
Topic starter
(@KranK)
Reputable RivalGamer
Joined: 9 years ago

Hey Guys !!!

Most of you here use an EBOOT.BIN to load your SPRX menu when game was loaded,
and many people have an issue with Prologue being started when hook was created !
I will help you solve it with very easy way, RTM/OLD School for GTA right?

Maybe even used for other things idono u tell me m8

anyway lets get started

I have 2 ways of doing it ill show you both here

Way #1 using memory to write 1 byte and make SPRX look for it and if found that it will create thread

Open your sprx source code and locate prx.cpp and open now you will see something like that
[hide]

void Hook_Here(uint64_t arg)
	    {
	
	    sleep(1000);
	    for(;;)
	    {
	        sleep(45);
	                // Here will be what ever hook you use
	        }
	        }
	

[/hide]
now what we have to do is this
[hide]

void Hook_Here(uint64_t arg)
	    {
	
	    sleep(1000);
	    for(;;)
	    {
	        sleep(45);
	                if (*(char*)0x10020000 == 01) // checks if Adresss 0x10020000 has 1 byte writen to it , 0x10020000  is free space on game memory 
	        {
	                        sleep(1000) // we will wait 1 second just in case :)
	                       *(char*)0x10020000 = 0x00; // writes 0x00 to 0x10020000 to prevent of being executed more than ones
	            // Here will be what ever hook you use // important hook call must be here exactly here 
	
	        }
	        }
	        }
	

[/hide]
Now to use that way you have to write 0x01000000 to 0x10020000 Adress and the HOOK will be executed

way #2 we will use RTM button monitor here for check what ever pressed and that execute the hook if presed

Open your sprx source code and locate prx.cpp and open now you will see something like that
[hide]

void Hook_Here(uint64_t arg)
	    {
	
	    sleep(1000);
	    for(;;)
	    {
	        sleep(45);
	                // Here will be what ever hook you use
	        }
	        }
	

[/hide]
now what we have to do is this

[hide]

	void Hook_Here(uint64_t arg)
	    {
	
	    sleep(1000);
	    for(;;)
	    {
	        sleep(45);
	
	                if (*(int*)0x01FC7710 == 0x0006000F) /// 0x01FC7710 = RTM button Adress /// 0x0006000F = R1 + R2 + R3 + L1 + L2 + R3
	        {
	
	            (*(int*)0x01FC7710 = 0x00000000); // Writes back to 0x00000000 just in case GTA is fucking slow till truns no button presed its RTM M8
	            sleep(1000); // wait to prevent of being executed more than ones basicaly wait till 0x0006000F turn to 0x00000000 
	
	                        // Here will be what ever hook you use // important hook call must be here exactly after sleep 
	
	
	        }
	        }
	        }
	

[/hide]
Now what we do is just press "R1 + R2 + R3 + L1 + L2 + R3" when game is loaded your save and the HOOK will be executed, Do not press it more than ones or you will freeze ill fix it later


that must fix prologue issues, if it dosnt help let me know !!!

I have another solution that is way better, but i will release it some later time.

HAVE FUN 😀

Reply
Name of the Video Game, and any other Tags
1 Reply
Posts: 3
(@GamerBoy12)
New RivalGamer
Joined: 9 years ago

Can't you just reverse the game, I'm sure theres something to determine whether the prologue has ended or not....

Reply