Files
PS2Recomp/ps2xRuntime
M. Sami Gürpınar 5d3be0e2e7 fix portability issue (#41)
* refactor: update function name checks to use contains method

* refactor: update code generation to use static_cast

* refactor: made member methods const

* refactor: made range-based loop

* refactor: make one variable constructor explicit

* refactor: remove redundant else

* refactor: turn includes to forward declarations

* refactor: brace placements turned into allman style

* refactor: structed binding for readability and clarity, used emplace_back to prevent extra-copied object

* fix: add dwarf_private.h include

* fix: update GPR_U32 and GPR_S32 macros to use _mm_extract_epi32 for SSE/AVX intrinsics
2026-02-03 10:25:22 -03:00
..
2026-02-03 10:25:22 -03:00
2026-02-03 10:25:22 -03:00
2025-04-12 03:49:35 -03:00
2025-11-29 01:50:07 -03:00

Runtime Library

The runtime library provides the execution environment for recompiled code, including:

  • Memory management (32MB main RAM, scratchpad, etc.)
  • Register context (128-bit GPRs, VU0 registers, etc.)
  • Function table for dynamic linking
  • Basic PS2 system call stubs

How to use:

Take your decompiled code and place the cpp files on ps2xRuntime/src/runner and header files on ps2xRuntime/include and compile/be happy.

Adding Custom Function Implementations

You can add custom implementations for PS2 system calls or game functions by:

  1. Creating function implementations that match the signature:
void function_name(uint8_t* rdram, R5900Context* ctx, PS2Runtime *runtime);
  1. Registering them with the runtime:
runtime.registerFunction(address, function_name);

Advanced Features

Memory Translation The runtime handles PS2's memory addressing, including:

  • KSEG0/KSEG1 direct mapping
  • TLB lookups for user memory
  • Special memory areas (scratchpad, I/O registers)

Vector Unit Support

PS2-specific 128-bit MMI instructions and VU0 macro mode instructions are supported via SSE/AVX intrinsics.

Instruction Patching

You can patch specific instructions in the recompiled code to fix game issues or implement custom behavior.

Limitations

  • Graphics and sound output require external implementations
  • Some PS2-specific hardware features may not be fully supported
  • Performance may vary based on the complexity of the game