Post: Fps rpc
08-10-2014, 03:49 AM #1
-JM-
Space Ninja
(adsbygoogle = window.adsbygoogle || []).push({}); Hello Guys I Wanted To Share My FPS RPC Function I found Big Thanks To Bad Luck Brian Helping me with return function Value
This is 4 arguments RPC can't have floats
    
private void Enable()
{
PS3.SetMemory(func_address, new byte[] { 0x41 });
byte[] WritePPC = new byte[] {0x3F,0x80,0x10,0x02,0x81,0x9C,0x00,0x48,0x2C,0x0C,0x00,0x00,0x41,0x82,0x00,0x78,
0x80,0x7C,0x00,0x00,0x80,0x9C,0x00,0x04,0x80,0xBC,0x00,0x08,0x80,0xDC,0x00,0x0C,
0x7D,0x89,0x03,0xA6,0x4E,0x80,0x04,0x21,0x38,0x80,0x00,0x00,0x90,0x9C,0x00,0x48,
0x90,0x7C,0x00,0x4C,0xD0,0x3C,0x00,0x50,0x48,0x00,0x00,0x4C,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
PS3.SetMemory(func_address + 4, WritePPC);
PS3.SetMemory(func_address, new byte[] { 0x40 });
Thread.Sleep(10);
}

This is with floats after I found the floats registers and has more arguments
    
private void Enable()
{
byte[] WritePPC = new byte[] {0x3F,0x80,0x10,0x02,0x81,0x9C,0x00,0x48,0x2C,0x0C,0x00,0x00,0x41,0x82,0x00,0x78,
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,
0x48,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00};
PS3.SetMemory(func_address, new byte[] { 0x41 });
PS3.SetMemory(func_address + 4, WritePPC);
PS3.SetMemory(func_address, new byte[] { 0x40 });
Thread.Sleep(10);
}

    
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++;
} //Should work now Happy let me try
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)
{
WriteSingle(0x10020024 + (Single * 4), (Single)parameters[index]);
Single++;
}
else if (parameters[index] is Single[])
{
Single[] Args = (Single[])parameters[index];
pointer = 0x10021000 + Array * 4;
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);
}

    
public static uint func_address = 0x00253AC8; //FPS Address 1.14

Thanks To Bad Luck Brian Helping me on skype
credits
brian
Vezah
(adsbygoogle = window.adsbygoogle || []).push({});

The following 4 users say thank you to -JM- for this useful post:

Burritoo, HighModzz, Obris, Zambie
08-10-2014, 04:11 AM #2
Zambie
< ^ > < ^ >
Nice release Smile
08-10-2014, 04:20 AM #3
-JM-
Space Ninja
Originally posted by SNIPER View Post
Nice release Smile


Thanks and Yea I couldn't find fps and people keeping shit private and now I know little PPC Yessss

The following user thanked -JM- for this useful post:

Zambie
08-10-2014, 04:24 AM #4
Zambie
< ^ > < ^ >
Originally posted by JM
Thanks and Yea I couldn't find fps and people keeping shit private and now I know little PPC Yessss

Haha Nice,thanks for not keeping your shit private

The following user thanked Zambie for this useful post:

-JM-
08-10-2014, 04:27 AM #5
-JM-
Space Ninja
Originally posted by SNIPER View Post
Haha Nice,thanks for not keeping your shit private


lol i was gonna wait t'ill I release My Menu but Its useless The game is old and doesn't have many rtm tools
08-10-2014, 04:35 AM #6
Zambie
< ^ > < ^ >
Originally posted by JM
lol i was gonna wait t'ill I release My Menu but Its useless The game is old and doesn't have many rtm tools

Still a good game though, When are you thinking of releasing your menu?
08-10-2014, 04:41 AM #7
-JM-
Space Ninja
Originally posted by SNIPER View Post
Still a good game though, When are you thinking of releasing your menu?

Idk I made awesome menu base but to complex the coding sucks :(
I might need to restart So In a week sould be near done
08-10-2014, 04:42 AM #8
Zambie
< ^ > < ^ >
Originally posted by JM
Idk I made awesome menu base but to complex the coding sucks :(
I might need to restart So In a week sould be near done


Well good luck can't wait for it's release then

The following user thanked Zambie for this useful post:

-JM-
08-10-2014, 05:26 AM #9
Nice Happy

The following user thanked PieuXClan for this useful post:

-JM-
08-10-2014, 07:15 PM #10
Azus
Little One
Originally posted by JM
Hello Guys I Wanted To Share My FPS RPC Function I found Big Thanks To Bad Luck Brian Helping me with return function Value
This is 4 arguments RPC can't have floats
    
private void Enable()
{
PS3.SetMemory(func_address, new byte[] { 0x41 });
byte[] WritePPC = new byte[] {0x3F,0x80,0x10,0x02,0x81,0x9C,0x00,0x48,0x2C,0x0C,0x00,0x00,0x41,0x82,0x00,0x78,
0x80,0x7C,0x00,0x00,0x80,0x9C,0x00,0x04,0x80,0xBC,0x00,0x08,0x80,0xDC,0x00,0x0C,
0x7D,0x89,0x03,0xA6,0x4E,0x80,0x04,0x21,0x38,0x80,0x00,0x00,0x90,0x9C,0x00,0x48,
0x90,0x7C,0x00,0x4C,0xD0,0x3C,0x00,0x50,0x48,0x00,0x00,0x4C,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
PS3.SetMemory(func_address + 4, WritePPC);
PS3.SetMemory(func_address, new byte[] { 0x40 });
Thread.Sleep(10);
}

This is with floats after I found the floats registers and has more arguments
    
private void Enable()
{
byte[] WritePPC = new byte[] {0x3F,0x80,0x10,0x02,0x81,0x9C,0x00,0x48,0x2C,0x0C,0x00,0x00,0x41,0x82,0x00,0x78,
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,
0x48,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00};
PS3.SetMemory(func_address, new byte[] { 0x41 });
PS3.SetMemory(func_address + 4, WritePPC);
PS3.SetMemory(func_address, new byte[] { 0x40 });
Thread.Sleep(10);
}

    
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++;
} //Should work now Happy let me try
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)
{
WriteSingle(0x10020024 + (Single * 4), (Single)parameters[index]);
Single++;
}
else if (parameters[index] is Single[])
{
Single[] Args = (Single[])parameters[index];
pointer = 0x10021000 + Array * 4;
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);
}

    
public static uint func_address = 0x00253AC8; //FPS Address 1.14

Thanks To Bad Luck Brian Helping me on skype
credits
brian
Vezah


FPS RPC is pewp, but good release Sal

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo