https://github.com/score3229/ps3sharp
A .NET library for interfacing directly with PS3 and RPCS3 backends, providing memory read/write and management functionalities.
https://github.com/score3229/ps3sharp
csharp dotnet emulation game-hacking gaming memory-management modding process-memory ps3 ps3-mods reverse-engineering rpcs3
Last synced: 9 months ago
JSON representation
A .NET library for interfacing directly with PS3 and RPCS3 backends, providing memory read/write and management functionalities.
- Host: GitHub
- URL: https://github.com/score3229/ps3sharp
- Owner: score3229
- License: mit
- Created: 2025-06-04T04:33:11.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-06-24T16:41:30.000Z (9 months ago)
- Last Synced: 2025-06-24T16:55:49.160Z (9 months ago)
- Topics: csharp, dotnet, emulation, game-hacking, gaming, memory-management, modding, process-memory, ps3, ps3-mods, reverse-engineering, rpcs3
- Language: C#
- Homepage:
- Size: 37.1 KB
- Stars: 7
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PS3Sharp
PS3Sharp is a .NET library for reading and writing memory directly from **PlayStation 3 (PS3)** consoles and the **RPCS3** emulator. It provides easy-to-use backends to interact with PS3 memory, making it ideal for tooling, debugging, or modding projects targeting PS3 and RPCS3.
The PS3 backend is built on top of [PS3Lib](https://github.com/iMCSx/PS3Lib), a popular library for PS3 communication.
---
## Features
- Direct memory access for PS3 and RPCS3 processes
- Support for reading and writing multiple data types (ints, floats, bytes, etc.)
- Switchable backend between PS3 console (using PS3Lib) and RPCS3 emulator
- Simple API designed with extensibility in mind
- Unit tested for reliability
---
## Installation
Currently, PS3Sharp is not published as a NuGet package. To use it, clone the repository and include the project in your solution.
---
## Usage
### RPCS3
```csharp
using PS3Sharp;
var rpcs3 = new PS3Client("rpcs3"); // optional: pass custom window title
// connect to the backend
if (rpcs3.Connect())
{
Console.WriteLine($"Connected to: {rpcs3.ActiveBackendType}");
// read an integer from memory
uint address = 0xC0000000;
int value = rpcs3.ReadInt32(address);
Console.WriteLine($"Value at {address:X}: {value}");
// write an integer to memory
rpcs3.WriteInt32(address, 12345);
rpcs3.Disconnect();
}
else
Console.WriteLine("Failed to connect.");
```
### PS3 (TMAPI / CCAPI)
```csharp
using PS3Sharp;
using PS3Sharp.Types;
var ps3 = new PS3Client(PS3Type.TMAPI); // or PS3Type.CCAPI
// connect to the backend
if (ps3.Connect())
{
Console.WriteLine($"Connected to: {ps3.ActiveBackendType}");
// read an integer from memory
uint address = 0xC0000000;
int value = ps3.ReadInt32(address);
Console.WriteLine($"Value at {address:X}: {value}");
// write an integer to memory
ps3.WriteInt32(address, 12345);
ps3.Disconnect();
}
else
Console.WriteLine("Failed to connect.");
```
---
## Backends
- **PS3Backend** - Connects to a physical PS3 console using PS3Lib.
- **RPCS3Backend** - Connects to the RPCS3 emulator process.
---
## Testing
Unit tests are included for both backends to verify read/write functionality and connection management.
---
## Contributing
Contributions are welcome!
---
## License
[MIT License](LICENSE)
---
## Contact
Created and maintained by Mack Core.
Feel free to reach out via GitHub or open an issue.