PCSX2 Documentation/IPC Protocol

From PCSX2 Wiki
Revision as of 20:46, 19 July 2022 by Link125 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.