Post: PS3 WAW 1.07 FPS RPC C#
08-01-2020, 04:11 AM #1
HlDE1
Rookie
(adsbygoogle = window.adsbygoogle || []).push({});
    

public static uint FPS_Address = 0x003A88A4;
public static void FPS_RPC()
{
byte[] WritePPC = new byte[] { 0x3F,0x80,0x10,0x02, 0x81,0x9C,0x00,0x48, 0x2C,0x0C,0x00,0x00, 0x41,0x82,0x00,0x68,

0x80,0x7C,0x00,0x00, 0x80,0x9C,0x00,0x04, 0x80,0xBC,0x00,0x08, 0x80,0xDC,0x00,0x0C,

0x80,0xFC,0x00,0x10, 0x81,0x1C,0x00,0x14, 0x81,0x3C,0x00,0x18, 0x81,0x5C,0x00,0x1C,

0x81,0x7C,0x00,0x20, 0xC0,0x3C,0x00,0x24, 0xC0,0x5C,0x00,0x28, 0xC0,0x7C,0x00,0x2C,

0xC0,0x9C,0x00,0x30, 0xC0,0xBC,0x00,0x34, 0xC0,0xDC,0x00,0x38, 0xC0,0xFC,0x00,0x3C,

0xC1,0x1C,0x00,0x40, 0xC1,0x3C,0x00,0x44, 0x7D,0x89,0x03,0xA6, 0x4E,0x80,0x04,0x21,

0x38,0x80,0x00,0x00, 0x90,0x9C,0x00,0x48, 0x90,0x7C,0x00,0x4C, 0xD0,0x3C,0x00,0x50,

0x60,0x00,0x00,0x00};

PS3.SetMemory(FPS_Address, new byte[] { 0x41 });

PS3.SetMemory(FPS_Address + 4, WritePPC);

PS3.SetMemory(FPS_Address, new byte[] { 0x40 });
}



Call :


public static Int32 Call(UInt32 address, params Object[] parameters)

{

Int32 length = parameters.Length;

Int32 index = 0;

UInt32 count = 0;

UInt32 Strings = 0;

UInt32 Single = 0;

UInt32 Array = 0;

while (index < length)

{

if (parameters[index] is Int32)

{

PS3.Extension.WriteInt32(0x10020000 + (count * 4), (Int32)parameters[index]);

count++;

}

else if (parameters[index] is UInt32)

{

PS3.Extension.WriteUInt32(0x10020000 + (count * 4), (UInt32)parameters[index]);

count++;

}

else if (parameters[index] is Int16)

{

PS3.Extension.WriteInt16(0x10020000 + (count * 4), (Int16)parameters[index]);

count++;

}

else if (parameters[index] is UInt16)

{

PS3.Extension.WriteUInt16(0x10020000 + (count * 4), (UInt16)parameters[index]);

count++;

}

else if (parameters[index] is Byte)

{

PS3.Extension.WriteByte(0x10020000 + (count * 4), (Byte)parameters[index]);

count++;

}

else

{

UInt32 pointer;

if (parameters[index] is String)

{

pointer = 0x10022000 + (Strings * 0x400);

PS3.Extension.WriteString(pointer, Convert.ToString(parameters[index]));

PS3.Extension.WriteUInt32(0x10020000 + (count * 4), pointer);

count++;

Strings++;

}

else if (parameters[index] is Single)

{

Games.BO2.Methods.Lib.WriteSingle(0x10020024 + (Single * 4), (Single)parameters[index]);

Single++;

}

else if (parameters[index] is Single[])

{

Single[] Args = (Single[])parameters[index];

pointer = 0x10021000 + Array * 4;

Games.BO2.Methods.Lib.WriteSingle(pointer, Args);

PS3.Extension.WriteUInt32(0x10020000 + count * 4, pointer);

count++;

Array += (UInt32)Args.Length;

}



}

index++;

}

PS3.Extension.WriteUInt32(0x10020048, address);

Thread.Sleep(20);

return PS3.Extension.ReadInt32(0x1002004c);

}

(adsbygoogle = window.adsbygoogle || []).push({});

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo