A Place For Gamers By Gamers


You are not connected. Please login or register

View previous topic View next topic Go down  Message [Page 1 of 1]

#1
 ♔xSkeptikal-♔

avatar
Premium Member
Premium Member
What you will need:

Visual Studio 2010
PS3SDK
PS3 Plugins for Visual Studio
A little bit of C++ knowledge


First off you want to start off by downloading Visual Studio 2010.
If you're planning to learn how to make things in C++ I shouldn't need to explain/link you to vs 2010 and install it.



you'll need to reinstall ProDG.

(google prodg and this video will come up download it from there)
Once it's downloaded, Open it obviously.

Next you want to select this



It will say something like "Install vs 2010 integration"

Once that's installed we'll need the PS3SDK, Sadly I cannot post anything related to the download link.
So you're on your own there. But i'll tell you this much it needs to be 4+ gb or it wont work.
Anyways onto the tutorial!


You want to start out by opening vs 2010 then creating a new project



If SCE > PS3 isn't there you've obviously messed up along the way or haven't install PS3SDK.

Select PS3 PPU Project
Next this Window will come up




Press Next then press PPU PRX project
Now click Finish


Next you want to open up the solution explorer and open prx.cpp

Most likely it will show like 7 errors



Just right click on one of the errors and press "Show IntelliSense Errors"

and their gone, Don't worry about some things that are underlined, the error list is your friend.

Next you want to add these up at the top of your project


Code:

#include <sys/sys_time.h>
#include <sys/syscall.h>
#include <sys/ppu_thread.h>
#include <string.h>
#include <sys/syscall.h>
#include <stdarg.h>
#include <stddef.h>
#include <sys/timer.h>




then add these in above SYS_MODULE_INFO


Code:
void sleep(usecond_t time)
{
sys_timer_usleep(time * 1000);
}

int console_write(const char * s)
{
uint32_t len;
system_call_4(403, 0, (uint64_t) s, 32, (uint64_t) &len);
return_to_user_prog(int);
}

sys_ppu_thread_t id;
sys_ppu_thread_t create_thread(void (*entry)(uint64_t), int priority, size_t stacksize, const char* threadname)
{
if(sys_ppu_thread_create(&id, entry, 0, priority , stacksize, 0, threadname) != CELL_OK)
{
console_write("Thread creation failed\n");
}
else
{
console_write("Thread created\n");
}
   return id;
}





First we need to make a thread

First add in this above PS3_PPU_Project1_prx_entry


Code:
void thread_entry(uint64_t arg)
{

}//This is where all your mods will begin ^_^

in PS3_PPU_Project1_prx_entry
or what ever you named your project_prx_entry

add this


Code:
create_thread(thread_entry, 0x4AA, 0x6000, "Main_Thread");
return 0;
Now we can
get started!

Basics to writing the memory in C++.

You can read/write the memory in C++ like this:

Writing the Memory//I'm not entirely sure if this is correct, but it should be.
1 byte - *(char*)0x0000000 = 0x01; //Yes this is literately how you write the memory in C++.
2 bytes - *(short*)0x00000000 = 0x01;
3 bytes - *(float*)0x00000000 = 0x01;
4 bytes - *(int*)0x00000000 = 0x01;
8 bytes - *(double*)0x00000000 = 0x01;

Example:


Code:
for (;;)//Since the code practically runs once you'll need to add a loop
{
     if (InGame())//Detects when it's InGame so it knows when to run and not every half a millisecond.
     {
          sleep(5000); //Sleeps for 5 seconds then executes your code below.
          *(char*)0x1786418 = 0x40; //Thanks to mango for the player speed offset, This sets your speed x2 so we'll know if it works or not ^_^
     }
}


Reading the Memory
same concept
1 byte - *(char*)0x0000000;
2 bytes - *(short*)0x00000000;
3 bytes - *(float*)0x00000000;
4 bytes - *(int*)0x00000000;
8 bytes - *(double*)0x00000000;

Example:


Code:
for (;;)//Since the code practically runs once you'll need to add a loop
{
     if (InGame())//Detects when it's InGame so it knows when to run and not every half a millisecond.
     {
          sleep(5000); //Sleeps for 5 seconds then executes your code below.
          if (*(char*)0x1786418 == 63)
          {
                  *(char*)0x1786418 = 0x40; //Thanks to mango for the player speed offset, This sets your speed x2 so we'll know if it works or not ^_^
          }
          else
          { *(char*)0x1786418 = 0x3F; /*Obviously this wouldn't work because it would turn it on and off every 5 seconds*/ }
     }


Full credit goes to Winter from NGU for taking the time to post this, I thought it was useful and decided to post here. If anyone would like the PS3SDK that's mentioned in the tut, pm me. I'm not allowed to upload or link it for legal purposes but I can still be of help. Also, If anyone would like a link to Winter's post you can find it here:

[You must be registered and logged in to see this link.]



Last edited by ♔xSkeptikal-♔ on 7/21/2014, 3:34 pm; edited 1 time in total (Reason for editing : fixed a few minor errors)

View user profile

#2
 Ŧг๏รtאץเ

avatar
Founder
Founder
thanks man this is a great post *)



View user profile http://www.team-psn.net

View previous topic View next topic Back to top  Message [Page 1 of 1]


Permissions in this forum:
You cannot reply to topics in this forum

Share URL

URL Direct
BBcode
HTML