Post: Fully Functioning and working C++ PS3TMAPI Library
11-10-2014, 03:04 AM #1
(adsbygoogle = window.adsbygoogle || []).push({}); Credits: BadLuckBrian, Milky4444, me, iMCSx, and last but not least, the Sony Developers Smile

Pastebin link:

You must login or register to view this content.


Link to code: You must login or register to view this content.

Header Download:You must login or register to view this content.

How to use source:
    
//IN YOUR PROJECT, RIGHT CLICK ON YOUR PROJECT and add THESE TO THE PROPERTIES!

[B]C/C++/Additional Include Directories/:[/B] C:\Program Files (x86)\SN Systems\PS3\sdk\include\

[B]Linker/Input/Additional Dependencies/:[/B] C:\Program Files (x86)\SN Systems\PS3\sdk\lib\PS3TMAPI.lib
[B]Linker/Input/Additional Dependencies/:[/B] C:\Program Files (x86)\SN Systems\PS3\sdk\lib\PS3TMAPix64.lib

//Then you shouldn't have any errors Smile


Example Project Download:

You must login or register to view this content.


How to use:
    
//Add header to your project (Drag and drop, or "Add Existing")
#pragma once
#include <iostream>
#include <Windows.h>
#include "C:\Program Files (x86)\SN Systems\PS3\sdk\include\ps3tmapi.h"


/*
IN YOUR PROJECT SETTINGS! ADD THESE:
C/C++/Additional Include Directories/-> C:\Program Files (x86)\SN Systems\PS3\sdk\include\
Linker/Input/Additional Dependencies/-> C:\Program Files (x86)\SN Systems\PS3\sdk\lib\PS3TMAPI.lib
*/


int target=0xfffffffe; //target default
unsigned int pid; //This is a decimal value of your ProcessID, Convert to HEX if to see (Thanks to Milky4444 for clearing that up)
using namespace System;
namespace PS3 {

public ref class PS3TMAPI
{
public: void Connect()
{
SNPS3InitTargetComms();
SNPS3Connect(target, NULL);
}
public: void Attach()
{
SNPS3InitTargetComms();
SNPS3Connect(target,NULL);
unsigned int pCount[32];
SNPS3InitTargetComms();
SNPS3ProcessList(target,pCount,&pid);
SNPS3ProcessAttach(target,0,pid);
SNPS3ProcessContinue(target,pid);
}
public: void writestring(UINT32 Address, std::string text)
{
SNPS3InitTargetComms();
SetMemory(Address, (BYTE*)text.c_str(), text.length() + 1);
}
public: void SetMemory(UINT32 Address, BYTE *bytes, int sizeOfArray)
{
SNPS3InitTargetComms();
SNPS3ProcessSetMemory(target, 0, pid, 0, Address, sizeOfArray, bytes);
}
public: BYTE* GetMemory(UINT32 Address, INT32 Length)
{
SNPS3InitTargetComms();
BYTE* ret = new BYTE[Length];
SNPS3ProcessGetMemory(target, 0, pid, 0, Address, Length, ret);
return ret;
}
public: void writeByte(UINT32 Address, BYTE input)
{
SNPS3InitTargetComms();
BYTE bytes[] = { input };
SetMemory(Address, bytes, 1);
}
public: void writeBool(UINT32 Address, bool input)
{
SNPS3InitTargetComms();
BYTE bytes[] = { input };
bytes[0] = input ? (BYTE)1 : (BYTE)0;
SetMemory(Address, bytes, 1);
}
public: BYTE readByte(UINT32 Address)
{
SNPS3InitTargetComms();
return (BYTE)GetMemory(Address, 1)[0];
}
public: char* ReadString(UINT32 Address)
{
SNPS3InitTargetComms();
int i = 0;
while (PS3::PS3TMAPI::readByte(Address + i) != 0x00){ i++; }
i++;//null terminate
return (char*)PS3::PS3TMAPI::GetMemory(Address, i);
}
public: bool readBool(UINT32 Address)
{
SNPS3InitTargetComms();
return GetMemory(Address, 1)[0] != 0;
}
public: INT16 readShort(UINT32 Address)
{
SNPS3InitTargetComms();
BYTE* read = GetMemory(Address, 2);
std::reverse(read, read + 2);
return *(INT16*)read;
}
public: INT32 readInt(UINT32 Address)
{
SNPS3InitTargetComms();
BYTE* read = GetMemory(Address, 4);
std::reverse(read, read + 4);
return *(INT32*)read;
}
public: INT64 readInt64(UINT64 Address)
{
SNPS3InitTargetComms();
BYTE* read = GetMemory(Address, Cool Man (aka Tustin);
std::reverse(read, read + Cool Man (aka Tustin);
return *(INT64*)read;
}
public: UINT16 readUShort(UINT32 Address)
{
SNPS3InitTargetComms();
BYTE* read = GetMemory(Address, 2);
std::reverse(read, read + 2);
return *(UINT16*)read;
}
public: UINT32 readUInt(UINT32 Address)
{
SNPS3InitTargetComms();
BYTE* read = GetMemory(Address, 4);
std::reverse(read, read + 4);
return *(UINT32*)read;
}
public: UINT64 readUInt64(UINT32 Address)
{
SNPS3InitTargetComms();
BYTE* read = GetMemory(Address, Cool Man (aka Tustin);
std::reverse(read, read + Cool Man (aka Tustin);
return *(UINT64*)read;
}
public: FLOAT readFloat(UINT32 Address)
{
SNPS3InitTargetComms();
BYTE* read = GetMemory(Address, 4);
std::reverse(read, read + 4);
return *(FLOAT*)read;
}
public: DOUBLE readDouble(UINT32 Address)
{
SNPS3InitTargetComms();
BYTE* read = GetMemory(Address, Cool Man (aka Tustin);
std::reverse(read, read + Cool Man (aka Tustin);
return *(DOUBLE*)read;
}
public: bool cmpArray(BYTE* a, BYTE* b, INT32 ArrayLength)
{
SNPS3InitTargetComms();
INT32 CheckArray = 0;
for (INT32 i = 0; i < ArrayLength; i++)
if (a[i] == b[i])
CheckArray++;
return CheckArray == ArrayLength;
}
public: void writeShort(UINT32 Address, INT16 input)
{
SNPS3InitTargetComms();
BYTE bytes[2];
*(INT16*)bytes = input;
std::reverse(bytes, bytes + 2);
SetMemory(Address, bytes, 2);
}
public: void writeInt(UINT32 Address, INT32 input)
{
SNPS3InitTargetComms();
BYTE bytes[4];
*(INT32*)bytes = input;
std::reverse(bytes, bytes + 4);
SetMemory(Address, bytes, 4);
}
public: void writeInt64(UINT32 Address, INT64 input)
{
SNPS3InitTargetComms();
BYTE bytes[8];
*(INT64*)bytes = input;
std::reverse(bytes, bytes + Cool Man (aka Tustin);
SetMemory(Address, bytes, Cool Man (aka Tustin);
}
public: void writeUShort(UINT32 Address, UINT16 input)
{
SNPS3InitTargetComms();
BYTE bytes[2];
*(UINT16*)bytes = input;
std::reverse(bytes, bytes + 2);
SetMemory(Address, bytes, 2);
}
public: void writeUInt(UINT32 Address, UINT32 input)
{
SNPS3InitTargetComms();
BYTE bytes[4];
*(UINT32*)bytes = input;
std::reverse(bytes, bytes + 4);
SetMemory(Address, bytes, 4);
}
public: void writeUInt64(UINT32 Address, UINT64 input)
{
SNPS3InitTargetComms();
BYTE bytes[8];
*(UINT64*)bytes = input;
std::reverse(bytes, bytes + Cool Man (aka Tustin);
SetMemory(Address, bytes, Cool Man (aka Tustin);
}
public: void writeFloat(UINT32 Address, float input)
{
SNPS3InitTargetComms();
BYTE bytes[4];
*(float*)bytes = input;
std::reverse(bytes, bytes + 4);
SetMemory(Address, bytes, 4);
}
public: void writeDouble(UINT32 Address, DOUBLE input)
{
SNPS3InitTargetComms();
BYTE bytes[8];
*(DOUBLE*)bytes = input;
std::reverse(bytes, bytes + Cool Man (aka Tustin);
SetMemory(Address, bytes, Cool Man (aka Tustin);
}
};
}
Last edited by BaSs_HaXoR ; 01-26-2015 at 06:53 PM. Reason: *Added helpful information. Updated. Removed un-needed code.

The following 19 users say thank you to BaSs_HaXoR for this useful post:

Absolute Zero, Bad Luck Brian, Boliberrys, CITYCOMET, Cyb3r, Eddie Mac, elgolumm, esc0rtd3w, Im Not Boobdidas, ioritree, KareraHekku, Kronoaxis, milky4444, Murderlikedj, John, oStankyModz, Smooth, Laser, XxEconomicsxX
11-10-2014, 03:06 AM #2
Smooth
< ^ > < ^ >
Cred for being first tears

The following user thanked Smooth for this useful post:

Bad Luck Brian
11-10-2014, 03:15 AM #3
Kronoaxis
You talkin to me?
Good job bass and everyone else! I always wondered why TMAPI didn't get any sort of poking around like PS3Lib did lol

The following user thanked Kronoaxis for this useful post:

BaSs_HaXoR
11-10-2014, 03:54 AM #4
Originally posted by Kreativity View Post
Good job bass and everyone else! I always wondered why TMAPI didn't get any sort of poking around like PS3Lib did lol


Well, I originally liked the idea of doing everything through wireless, but since Enstone doesn't want to help in the development of furthering his library anymore, I have moved on to more productive things. I'm done trying to use his code when he tries to be more private and concealing about it. If he wasn't so worried about the $, maybe we would be further ahead in the programming side of things.

Anyway, I am currently working on RTEing for Android, Windows 8.1 OS, and possibly Iphone development through TMAPI now. Smile

The following user thanked BaSs_HaXoR for this useful post:

Kronoaxis
11-10-2014, 03:55 AM #5
Originally posted by HaXoR View Post
Credits: BadLuckBrian, Milky4444, me, iMCSx, and last but not least, the Sony Developers Smile

Link to code: You must login or register to view this content.

Header Download:You must login or register to view this content.

Example Project Download:

Uploading...


How to use:
    
//Add header to your project (Drag and drop, or "Add Existing")
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include "PS3.h"
//then in your main function

int main()
{
PS3::PS3TMAPI^ PS3 = gcnew PS3::PS3TMAPI(); //Declares new PS3 for TMAPI class (Where all the functions are nested)
PS3->Connect(); //Connects to PS3 Console via Target Manager & Debugger (SNES SYSTEMS)
std::cout<<"Connected Successfully!";
std::cin.get(); //Waits for user input
PS3->Attach(); //Attaches to PS3 Console via Target Manager & Debugger (SNES SYSTEMS)
std::cout<<"Connected and Attached Successfully!";
std::cin.get(); //Waits for user input
PS3->//etc. Functions here

}

    
// PS3.h

/*Credits: Me - BaSs_HaXoR, for coding this library, BadLuckBrian for his conversion and I/O methods, Milky4444 for helping me understand ProcessID (PID) and get it working.*/
#pragma once
#include "Stdafx.h"
#include <iostream>
#include <Windows.h>
#include "C:\Program Files (x86)\SN Systems\PS3\sdk\include\ps3tmapi.h"

const WCHAR * dllName = L"ps3tmapi.dll";
HINSTANCE hlib = LoadLibrary(dllName);
typedef int (__cdecl *InitTargetCommsFunction)(void);
typedef int (__cdecl *ConnectFunction)(int,LPWSTR);

typedef int (__cdecl *ProcessListFunction)(int, UINT32*, UINT32);

typedef int (__cdecl *ProcessAttachFunction)(int, UINT32 ,UINT32);
typedef int (__cdecl *ProcessContinueFunction) (int, UINT32);
typedef int (__cdecl *ProcessInfoFunction)(int, UINT32 ,UINT32*,SNPS3PROCESSINFO*);
typedef int (__cdecl *ProcessSetMemoryFunction)(int, UINT32 ,UINT32 ,UINT64 , UINT64, int, BYTE*);
typedef int (__cdecl *ProcessGetMemoryFunction)(int, UINT32 ,UINT32 ,UINT64 , UINT64, int, BYTE*);

InitTargetCommsFunction InitTargetComms = (InitTargetCommsFunction) GetProcAddress(hlib, "SNPS3InitTargetComms");
ConnectFunction ConnectProcess = (ConnectFunction) GetProcAddress(hlib, "SNPS3Connect");
//DisconnectFunction Disconnect = (DisconnectFunction) GetProcAddress(hlib, "SNPS3Disconnect");
ProcessListFunction ProcessList = (ProcessListFunction) GetProcAddress(hlib, "SNPS3ProcessList");
ProcessAttachFunction ProcessAttach = (ProcessAttachFunction) GetProcAddress(hlib, "SNPS3ProcessAttach");
ProcessContinueFunction ProcessContinue = (ProcessContinueFunction) GetProcAddress(hlib,"SNPS3ProcessContinue");
ProcessInfoFunction ProcessInfo = (ProcessInfoFunction) GetProcAddress(hlib, "SNPS3ProcessInfo");
ProcessGetMemoryFunction GetMemory = (ProcessGetMemoryFunction) GetProcAddress(hlib, "SNPS3ProcessGetMemory");
ProcessSetMemoryFunction SetMemory = (ProcessSetMemoryFunction) GetProcAddress(hlib, "SNPS3ProcessSetMemory");
int target=0xfffffffe; //target default
SNPS3PROCESSINFO *pProcessInfo = new SNPS3PROCESSINFO; //processinfo - Self explanitory
UINT32 puCount;
unsigned int pid; //This is a decimal value of your ProcessID, Convert to HEX if to see (Thanks to Milky4444 for clearing that up)
using namespace System;
namespace PS3 {

public ref class PS3TMAPI
{
public: void Connect()
{
InitTargetComms();
ConnectProcess(target,NULL);
}
public: void Attach()
{
SNPS3InitTargetComms();
SNPS3Connect(target,NULL);
unsigned int pCount[32];
SNPS3InitTargetComms();
SNPS3ProcessList(target,pCount,&pid);
SNPS3ProcessAttach(target,0,pid);
SNPS3ProcessContinue(target,pid);
}
public: void writestring(UINT32 Address, std::string text)
{
SetMemory(Address, (BYTE*)text.c_str(), text.length() + 1);
}
public: void SetMemory(UINT32 Address, BYTE *bytes, int sizeOfArray)
{
InitTargetComms();
SNPS3ProcessSetMemory(target, 0, pid, 0, Address, sizeOfArray, bytes);
}
public: BYTE* GetMemory(UINT32 Address, INT32 Length)
{
InitTargetComms();
BYTE* ret = new BYTE[Length];
SNPS3ProcessGetMemory(target, 0, pid, 0, Address, Length, ret);
return ret;
}
public: void writeByte(UINT32 Address, BYTE input)
{
BYTE bytes[] = { input };
SetMemory(Address, bytes, 1);
}
public: void writeBool(UINT32 Address, bool input)
{
BYTE bytes[] = { input };
bytes[0] = input ? (BYTE)1 : (BYTE)0;
SetMemory(Address, bytes, 1);
}
public: BYTE readByte(UINT32 Address)
{
return (BYTE)GetMemory(Address, 1)[0];
}
public: char* ReadString(UINT32 Address)
{
int i = 0;
while (PS3::PS3TMAPI::readByte(Address + i) != 0x00){ i++; }
i++;//null terminate
return (char*)PS3::PS3TMAPI::GetMemory(Address, i);
}
public: bool readBool(UINT32 Address)
{
return GetMemory(Address, 1)[0] != 0;
}
public: INT16 readShort(UINT32 Address)
{
BYTE* read = GetMemory(Address, 2);
std::reverse(read, read + 2);
return *(INT16*)read;
}
public: INT32 readInt(UINT32 Address)
{
BYTE* read = GetMemory(Address, 4);
std::reverse(read, read + 4);
return *(INT32*)read;
}
public: INT64 readInt64(UINT64 Address)
{
BYTE* read = GetMemory(Address, Cool Man (aka Tustin);
std::reverse(read, read + Cool Man (aka Tustin);
return *(INT64*)read;
}
public: UINT16 readUShort(UINT32 Address)
{
BYTE* read = GetMemory(Address, 2);
std::reverse(read, read + 2);
return *(UINT16*)read;
}
public: UINT32 readUInt(UINT32 Address)
{
BYTE* read = GetMemory(Address, 4);
std::reverse(read, read + 4);
return *(UINT32*)read;
}
public: UINT64 readUInt64(UINT32 Address)
{
BYTE* read = GetMemory(Address, Cool Man (aka Tustin);
std::reverse(read, read + Cool Man (aka Tustin);
return *(UINT64*)read;
}
public: FLOAT readFloat(UINT32 Address)
{
BYTE* read = GetMemory(Address, 4);
std::reverse(read, read + 4);
return *(FLOAT*)read;
}
public: DOUBLE readDouble(UINT32 Address)
{
BYTE* read = GetMemory(Address, Cool Man (aka Tustin);
std::reverse(read, read + Cool Man (aka Tustin);
return *(DOUBLE*)read;
}
public: bool cmpArray(BYTE* a, BYTE* b, INT32 ArrayLength)
{
INT32 CheckArray = 0;
for (INT32 i = 0; i < ArrayLength; i++)
if (a[i] == b[i])
CheckArray++;
return CheckArray == ArrayLength;
}
public: void writeShort(UINT32 Address, INT16 input)
{
BYTE bytes[2];
*(INT16*)bytes = input;
std::reverse(bytes, bytes + 2);
SetMemory(Address, bytes, 2);
}
public: void writeInt(UINT32 Address, INT32 input)
{
BYTE bytes[4];
*(INT32*)bytes = input;
std::reverse(bytes, bytes + 4);
SetMemory(Address, bytes, 4);
}
public: void writeInt64(UINT32 Address, INT64 input)
{
BYTE bytes[8];
*(INT64*)bytes = input;
std::reverse(bytes, bytes + Cool Man (aka Tustin);
SetMemory(Address, bytes, Cool Man (aka Tustin);
}
public: void writeUShort(UINT32 Address, UINT16 input)
{
BYTE bytes[2];
*(UINT16*)bytes = input;
std::reverse(bytes, bytes + 2);
SetMemory(Address, bytes, 2);
}
public: void writeUInt(UINT32 Address, UINT32 input)
{
BYTE bytes[4];
*(UINT32*)bytes = input;
std::reverse(bytes, bytes + 4);
SetMemory(Address, bytes, 4);
}
public: void writeUInt64(UINT32 Address, UINT64 input)
{
BYTE bytes[8];
*(UINT64*)bytes = input;
std::reverse(bytes, bytes + Cool Man (aka Tustin);
SetMemory(Address, bytes, Cool Man (aka Tustin);
}
public: void writeFloat(UINT32 Address, float input)
{
BYTE bytes[4];
*(float*)bytes = input;
std::reverse(bytes, bytes + 4);
SetMemory(Address, bytes, 4);
}
public: void writeDouble(UINT32 Address, DOUBLE input)
{
BYTE bytes[8];
*(DOUBLE*)bytes = input;
std::reverse(bytes, bytes + Cool Man (aka Tustin);
SetMemory(Address, bytes, Cool Man (aka Tustin);
}
};
}


h0w d0 i c0d3z teh cplusplus
11-10-2014, 03:57 AM #6
KAOSxGaming
At least I can fight
Originally posted by HaXoR View Post
Credits: BadLuckBrian, Milky4444, me, iMCSx, and last but not least, the Sony Developers Smile

Link to code: You must login or register to view this content.

Header Download:You must login or register to view this content.

Example Project Download:

Uploading...


How to use:
    
//Add header to your project (Drag and drop, or "Add Existing")
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include "PS3.h"
//then in your main function

int main()
{
PS3::PS3TMAPI^ PS3 = gcnew PS3::PS3TMAPI(); //Declares new PS3 for TMAPI class (Where all the functions are nested)
PS3->Connect(); //Connects to PS3 Console via Target Manager & Debugger (SNES SYSTEMS)
std::cout<<"Connected Successfully!";
std::cin.get(); //Waits for user input
PS3->Attach(); //Attaches to PS3 Console via Target Manager & Debugger (SNES SYSTEMS)
std::cout<<"Connected and Attached Successfully!";
std::cin.get(); //Waits for user input
PS3->//etc. Functions here

}

    
// PS3.h

/*Credits: Me - BaSs_HaXoR, for coding this library, BadLuckBrian for his conversion and I/O methods, Milky4444 for helping me understand ProcessID (PID) and get it working.*/
#pragma once
#include "Stdafx.h"
#include <iostream>
#include <Windows.h>
#include "C:\Program Files (x86)\SN Systems\PS3\sdk\include\ps3tmapi.h"

const WCHAR * dllName = L"ps3tmapi.dll";
HINSTANCE hlib = LoadLibrary(dllName);
typedef int (__cdecl *InitTargetCommsFunction)(void);
typedef int (__cdecl *ConnectFunction)(int,LPWSTR);

typedef int (__cdecl *ProcessListFunction)(int, UINT32*, UINT32);

typedef int (__cdecl *ProcessAttachFunction)(int, UINT32 ,UINT32);
typedef int (__cdecl *ProcessContinueFunction) (int, UINT32);
typedef int (__cdecl *ProcessInfoFunction)(int, UINT32 ,UINT32*,SNPS3PROCESSINFO*);
typedef int (__cdecl *ProcessSetMemoryFunction)(int, UINT32 ,UINT32 ,UINT64 , UINT64, int, BYTE*);
typedef int (__cdecl *ProcessGetMemoryFunction)(int, UINT32 ,UINT32 ,UINT64 , UINT64, int, BYTE*);

InitTargetCommsFunction InitTargetComms = (InitTargetCommsFunction) GetProcAddress(hlib, "SNPS3InitTargetComms");
ConnectFunction ConnectProcess = (ConnectFunction) GetProcAddress(hlib, "SNPS3Connect");
//DisconnectFunction Disconnect = (DisconnectFunction) GetProcAddress(hlib, "SNPS3Disconnect");
ProcessListFunction ProcessList = (ProcessListFunction) GetProcAddress(hlib, "SNPS3ProcessList");
ProcessAttachFunction ProcessAttach = (ProcessAttachFunction) GetProcAddress(hlib, "SNPS3ProcessAttach");
ProcessContinueFunction ProcessContinue = (ProcessContinueFunction) GetProcAddress(hlib,"SNPS3ProcessContinue");
ProcessInfoFunction ProcessInfo = (ProcessInfoFunction) GetProcAddress(hlib, "SNPS3ProcessInfo");
ProcessGetMemoryFunction GetMemory = (ProcessGetMemoryFunction) GetProcAddress(hlib, "SNPS3ProcessGetMemory");
ProcessSetMemoryFunction SetMemory = (ProcessSetMemoryFunction) GetProcAddress(hlib, "SNPS3ProcessSetMemory");
int target=0xfffffffe; //target default
SNPS3PROCESSINFO *pProcessInfo = new SNPS3PROCESSINFO; //processinfo - Self explanitory
UINT32 puCount;
unsigned int pid; //This is a decimal value of your ProcessID, Convert to HEX if to see (Thanks to Milky4444 for clearing that up)
using namespace System;
namespace PS3 {

public ref class PS3TMAPI
{
public: void Connect()
{
InitTargetComms();
ConnectProcess(target,NULL);
}
public: void Attach()
{
SNPS3InitTargetComms();
SNPS3Connect(target,NULL);
unsigned int pCount[32];
SNPS3InitTargetComms();
SNPS3ProcessList(target,pCount,&pid);
SNPS3ProcessAttach(target,0,pid);
SNPS3ProcessContinue(target,pid);
}
public: void writestring(UINT32 Address, std::string text)
{
SetMemory(Address, (BYTE*)text.c_str(), text.length() + 1);
}
public: void SetMemory(UINT32 Address, BYTE *bytes, int sizeOfArray)
{
InitTargetComms();
SNPS3ProcessSetMemory(target, 0, pid, 0, Address, sizeOfArray, bytes);
}
public: BYTE* GetMemory(UINT32 Address, INT32 Length)
{
InitTargetComms();
BYTE* ret = new BYTE[Length];
SNPS3ProcessGetMemory(target, 0, pid, 0, Address, Length, ret);
return ret;
}
public: void writeByte(UINT32 Address, BYTE input)
{
BYTE bytes[] = { input };
SetMemory(Address, bytes, 1);
}
public: void writeBool(UINT32 Address, bool input)
{
BYTE bytes[] = { input };
bytes[0] = input ? (BYTE)1 : (BYTE)0;
SetMemory(Address, bytes, 1);
}
public: BYTE readByte(UINT32 Address)
{
return (BYTE)GetMemory(Address, 1)[0];
}
public: char* ReadString(UINT32 Address)
{
int i = 0;
while (PS3::PS3TMAPI::readByte(Address + i) != 0x00){ i++; }
i++;//null terminate
return (char*)PS3::PS3TMAPI::GetMemory(Address, i);
}
public: bool readBool(UINT32 Address)
{
return GetMemory(Address, 1)[0] != 0;
}
public: INT16 readShort(UINT32 Address)
{
BYTE* read = GetMemory(Address, 2);
std::reverse(read, read + 2);
return *(INT16*)read;
}
public: INT32 readInt(UINT32 Address)
{
BYTE* read = GetMemory(Address, 4);
std::reverse(read, read + 4);
return *(INT32*)read;
}
public: INT64 readInt64(UINT64 Address)
{
BYTE* read = GetMemory(Address, Cool Man (aka Tustin);
std::reverse(read, read + Cool Man (aka Tustin);
return *(INT64*)read;
}
public: UINT16 readUShort(UINT32 Address)
{
BYTE* read = GetMemory(Address, 2);
std::reverse(read, read + 2);
return *(UINT16*)read;
}
public: UINT32 readUInt(UINT32 Address)
{
BYTE* read = GetMemory(Address, 4);
std::reverse(read, read + 4);
return *(UINT32*)read;
}
public: UINT64 readUInt64(UINT32 Address)
{
BYTE* read = GetMemory(Address, Cool Man (aka Tustin);
std::reverse(read, read + Cool Man (aka Tustin);
return *(UINT64*)read;
}
public: FLOAT readFloat(UINT32 Address)
{
BYTE* read = GetMemory(Address, 4);
std::reverse(read, read + 4);
return *(FLOAT*)read;
}
public: DOUBLE readDouble(UINT32 Address)
{
BYTE* read = GetMemory(Address, Cool Man (aka Tustin);
std::reverse(read, read + Cool Man (aka Tustin);
return *(DOUBLE*)read;
}
public: bool cmpArray(BYTE* a, BYTE* b, INT32 ArrayLength)
{
INT32 CheckArray = 0;
for (INT32 i = 0; i < ArrayLength; i++)
if (a[i] == b[i])
CheckArray++;
return CheckArray == ArrayLength;
}
public: void writeShort(UINT32 Address, INT16 input)
{
BYTE bytes[2];
*(INT16*)bytes = input;
std::reverse(bytes, bytes + 2);
SetMemory(Address, bytes, 2);
}
public: void writeInt(UINT32 Address, INT32 input)
{
BYTE bytes[4];
*(INT32*)bytes = input;
std::reverse(bytes, bytes + 4);
SetMemory(Address, bytes, 4);
}
public: void writeInt64(UINT32 Address, INT64 input)
{
BYTE bytes[8];
*(INT64*)bytes = input;
std::reverse(bytes, bytes + Cool Man (aka Tustin);
SetMemory(Address, bytes, Cool Man (aka Tustin);
}
public: void writeUShort(UINT32 Address, UINT16 input)
{
BYTE bytes[2];
*(UINT16*)bytes = input;
std::reverse(bytes, bytes + 2);
SetMemory(Address, bytes, 2);
}
public: void writeUInt(UINT32 Address, UINT32 input)
{
BYTE bytes[4];
*(UINT32*)bytes = input;
std::reverse(bytes, bytes + 4);
SetMemory(Address, bytes, 4);
}
public: void writeUInt64(UINT32 Address, UINT64 input)
{
BYTE bytes[8];
*(UINT64*)bytes = input;
std::reverse(bytes, bytes + Cool Man (aka Tustin);
SetMemory(Address, bytes, Cool Man (aka Tustin);
}
public: void writeFloat(UINT32 Address, float input)
{
BYTE bytes[4];
*(float*)bytes = input;
std::reverse(bytes, bytes + 4);
SetMemory(Address, bytes, 4);
}
public: void writeDouble(UINT32 Address, DOUBLE input)
{
BYTE bytes[8];
*(DOUBLE*)bytes = input;
std::reverse(bytes, bytes + Cool Man (aka Tustin);
SetMemory(Address, bytes, Cool Man (aka Tustin);
}
};
}


did you call sony up and instead of asking for a console id and getting unbanned you asked for help with this? Cool Troll

The following user thanked KAOSxGaming for this useful post:

BaSs_HaXoR
11-10-2014, 05:25 AM #7
Kronoaxis
You talkin to me?
Originally posted by HaXoR View Post
Well, I originally liked the idea of doing everything through wireless, but since Enstone doesn't want to help in the development of furthering his library anymore, I have moved on to more productive things. I'm done trying to use his code when he tries to be more private and concealing about it. If he wasn't so worried about the $, maybe we would be further ahead in the programming side of things.

Anyway, I am currently working on RTEing for Android, Windows 8.1 OS, and possibly Iphone development through TMAPI now. Smile


iPhone development...Steve jobs is going to probably haunt you for life but oh well, let him. he can't handle all this L33T :derpina:
11-10-2014, 08:47 AM #8
Thank you, but did you know how to use trophy pop message in game (not XMB) ,I mean when enable trainer will show trophy pop message (sorry for my broken english)
11-10-2014, 05:54 PM #9
Originally posted by HaXoR View Post
Well, I originally liked the idea of doing everything through wireless, but since Enstone doesn't want to help in the development of furthering his library anymore, I have moved on to more productive things. I'm done trying to use his code when he tries to be more private and concealing about it. If he wasn't so worried about the $, maybe we would be further ahead in the programming side of things.

Anyway, I am currently working on RTEing for Android, Windows 8.1 OS, and possibly Iphone development through TMAPI now. Smile


iOS wouldn't work. You can't run c++ On something that runs obj c
11-10-2014, 11:01 PM #10
Originally posted by Doctor
iOS wouldn't work. You can't run c++ On something that runs obj c


I have my ways man. I know how to go about it Winky Winky

Copyright © 2023, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo