THREAD: Fully Functioning and working C++ PS3TMAPI Library
  1. 11-10-2014, 03:04 AM
    691
    Posts
    20,615
    Reputation
    Sep 2012
    NextGenUpdate
    Credits: BadLuckBrian, Milky4444, me, iMCSx, and last but not least, the Sony Developers Smile

    Pastebin link:
    Spoiler:

    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!

    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
    Linker/Input/Additional Dependencies/: C:\Program Files (x86)\SN Systems\PS3\sdk\lib\PS3TMAPix64.lib

    //Then you shouldn't have any errors Smile


    Example Project Download:
    Spoiler:

    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 == b)
    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.

  2. The Following 19 Users Say Thank You to BaSs_HaXoR For This Useful Post:

    , , , , , , , , , , , , , , , , , ,

  3. 11-10-2014, 03:06 AM
    Smooth's Avatar
    Smooth
    < ^ > < ^ >
    Smooth's Avatar
    Smooth
    < ^ > < ^ >
    1,109
    Posts
    8,711
    Reputation
    Oct 2013
    NextGenUpdate
    Cred for being first tears
  4. The Following User Thanked Smooth For This Useful Post:


  5. 11-10-2014, 03:15 AM
    Kronoaxis's Avatar
    Kronoaxis
    You talkin to me?
    Kronoaxis's Avatar
    Kronoaxis
    You talkin to me?
    511
    Posts
    6,129
    Reputation
    Aug 2014
    NextGenUpdate
    Good job bass and everyone else! I always wondered why TMAPI didn't get any sort of poking around like PS3Lib did lol
  6. The Following User Thanked Kronoaxis For This Useful Post:


  7. 11-10-2014, 03:54 AM
    691
    Posts
    20,615
    Reputation
    Sep 2012
    NextGenUpdate
    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
  8. The Following User Thanked BaSs_HaXoR For This Useful Post:


  9. 11-10-2014, 03:55 AM
    425
    Posts
    11,948
    Reputation
    Sep 2012
    NextGenUpdate
    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:
    Spoiler:

    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 == b)
    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
  10. 11-10-2014, 03:57 AM
    KAOSxGaming's Avatar
    KAOSxGaming
    At least I can fight
    KAOSxGaming's Avatar
    KAOSxGaming
    At least I can fight
    2,014
    Posts
    9,568
    Reputation
    Nov 2013
    NextGenUpdate
    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:
    Spoiler:

    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 == b)
    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
  11. The Following User Thanked KAOSxGaming For This Useful Post:


  12. 11-10-2014, 05:25 AM
    Kronoaxis's Avatar
    Kronoaxis
    You talkin to me?
    Kronoaxis's Avatar
    Kronoaxis
    You talkin to me?
    511
    Posts
    6,129
    Reputation
    Aug 2014
    NextGenUpdate
    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:
  13. 11-10-2014, 08:47 AM
    ioritree's Avatar
    ioritree
    Haxor!
    ioritree's Avatar
    ioritree
    Haxor!
    39
    Posts
    150
    Reputation
    Jan 2013
    NextGenUpdate
    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)
  14. 11-10-2014, 05:54 PM
    n/a
    Posts
    n/a
    Reputation
    Once upon a time...
    NextGenUpdate
    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
  15. 11-10-2014, 11:01 PM
    691
    Posts
    20,615
    Reputation
    Sep 2012
    NextGenUpdate
    Originally Posted by Doctor View Post
    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