PCSX2 Documentation/IPC Protocol: Difference between revisions

From PCSX2 Wiki
Jump to navigation Jump to search
No edit summary
mNo edit summary
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
PCSX2 now implements an IPC(Inter-Process Communication) protocol to allow inter-communication between external tools, PCSX2 and emulated games.
PCSX2 now implements an IPC(Inter-Process Communication) protocol to allow inter-communication between external tools, PCSX2 and emulated games.


This protocol allows things such as, for example:
This protocol aims to allow things such as, for example:


* Communicating between a game and an external tool, e.g. to play music out of a game due to memory limitation.
* Communicating between a game and an external tool, e.g. to play music out of a game due to memory limitation.
Line 11: Line 11:
This effectively allows something akin to a scripting language inside the emulator, except it runs outside of it.
This effectively allows something akin to a scripting language inside the emulator, except it runs outside of it.


To get started, you'll need to grab the latest release available here: https://code.govanify.com/govanify/pcsx2_ipc/releases <br/>
To get started, you'll need to grab the latest release available here: https://projects.govanify.com/govanify/pine <br/>
If you want to use the C++ API just compile on your OS of choice the client example and start hacking. <br/>
If you want to use the C++ API just compile on your OS of choice the client example and start hacking. <br/>
If you prefer another language, such as Python, Lua or Rust, you'll have to program an intermediary library first. <br/>
If you prefer another language, such as Python, Lua or Rust, you'll have to program an intermediary library first. <br/>
All of this process is detailed in the repository linked above.  <br/>
All of this process is detailed in the repository linked above.  <br/>
A fairly complete documentation is available in the release under either an HTML or PDF format, depending on your preferences in the releases linked above.
A fairly complete documentation is available in the release under either an HTML or PDF format, depending on your preferences in the releases linked above.

Latest revision as of 20:46, 19 July 2022

PCSX2 now implements an IPC(Inter-Process Communication) protocol to allow inter-communication between external tools, PCSX2 and emulated games.

This protocol aims to allow things such as, for example:

  • Communicating between a game and an external tool, e.g. to play music out of a game due to memory limitation.
  • Communicating between PCSX2 and an external tool, e.g. to pause a game or load one.
  • Communicating between a game and PCSX2, e.g. making a boss fight trigger a save-state.

And much more!
In contrast to PNACH, you can program the tool in the program of your choice and are not limited, logic wise. This effectively allows something akin to a scripting language inside the emulator, except it runs outside of it.

To get started, you'll need to grab the latest release available here: https://projects.govanify.com/govanify/pine
If you want to use the C++ API just compile on your OS of choice the client example and start hacking.
If you prefer another language, such as Python, Lua or Rust, you'll have to program an intermediary library first.
All of this process is detailed in the repository linked above.
A fairly complete documentation is available in the release under either an HTML or PDF format, depending on your preferences in the releases linked above.