2 stable releases

new 1.0.2 May 22, 2025
1.0.1 May 21, 2025

#1098 in Network programming

MIT license

15KB
332 lines

pine-ipc

Rust implementation of the PINE IPC protocol.

Usage

use pine_ipc::{PINEBatch, PINECommand, PINE};

fn main() {
    // Connect to PINE using the default slot for PCSX2 (28011)
    let mut pine = PINE::connect("pcsx2", 28011, true).expect("Failed to connect to PCSX2");

    // Create batch command
    let mut batch = PINEBatch::new();
    batch.add(PINECommand::MsgTitle);
    batch.add(PINECommand::MsgGameVersion);
    batch.add(PINECommand::MsgRead32 { mem: 0x003667DC });

    // Send batch
    let res = pine.send(&mut batch).expect("Failed to send PINE batch");
    println!("{res:?}");
    // Example response:
    // [
    //     ResTitle { title: "Klonoa 2 - Lunatea's Veil" },
    //     ResGameVersion { version: "1.00" },
    //     ResRead32 { val: 3566512 }
    // ]
}

Dependencies

~230–670KB
~16K SLoC