Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RecompOne

logo

RecompOne is a tool to statically recompile PlayStation 1 executables into C# code. it also provides a runtime layer that translates the PS1 hardware environment into something modern PCs can run natively.

This project is inspired by N64Recomp and XenonRecomp, which are similar tools for N64 and Xbox 360 respectively

Discord

How it works

Static recompilation is similar to emulation in that it recreates the internal state of the hardware, the difference is that instead of fetching, decoding, and executing each instruction at runtime, the recompiler translates all MIPS operations into code ahead of time.

the generated code operates on a CpuContext and a memory interface. this CpuContext encapsulates the state the CPU would be in and the runtime simulates what the PS1 hardware would be doing and translates it into something modern hardware can understand

For example, an add instruction:

addiu t0, t0, 0x10

becomes:

c.T0 = c.T0 + 0x10u;

and a memory read:

lw t0, 0x10(sp)

becomes:

c.T0 = mem.Read32(c.SP + 0x10u);

The runtime simulates what the game expects such as BIOS functions, MMIO, GPU commands, CD-ROM, and so on, simillar to an emulator but unlike one no BIOS or other proprietary files are required. only the game files are needed to run it. RecompOne does not dependend on Sony components.

Building

RecompOne is a .NET project, You'll need the .NET SDK 10 installed, then you can compile and run the recompiler, the runtime is not supposed to be ran, its a library that you have to include in your recompiled game.

How do i create a port?

Creating a port for a game is an involved process, but you can find instructions on how to get started on our wiki

Contributing

Contributions are welcome. Bug reports, feature suggestions, and code are all appreciated.

Currently i'm the only maintainer, so my available time is limited. if you submit a PR please ensure it's solid code you can stand behind, any form of AI-generated PRs will not be accepted.

Stance on AI

This project is proudly made by humans. AI was not involved in writing the code, and it never will be. AI PRs will be rejected, no exceptions.

This project does not support vibe-coded ports. AI can be a useful research tool, but it does not replace the human judgment needed to understand and correctly implement what you are building. Code you don't understand is not code you wrote.

You do you, but we will not provide help or promote ports produced that way.

About

PSX Static recompiler and runtime, not affiliated with sony or playstation

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages