Skip to content
PORTSNATIVE.
HomeCatalog
Web GamesEmulatorsToolsNews
PORTSNATIVE.

A catalog for discovering ports and related projects. We link to official sources and do not host original game files.

ExploreCatalogMy list
InformationAbout usSuggest a portSupportDonationsLegal notice
© 2026 PortsNative
Back to catalog
Parasite Eve
PORTSNATIVE

Parasite Eve

NATIVE PORTSTRATEGY / RTSWINDOWSALPHA

Parasite Eve

TechnologyDecompilation and reconstruction in C/C++

Available forWindows

View official project

About the project

Parasite Eve es un videojuego de terror de estrategia y acción, con algunos toques de videojuego de rol. Fue desarrollado por la empresa Squaresoft basándose en el libro homónimo de Hideaki Sena. Su banda sonora está compuesta por Yōko Shimomura.

3 versions of Parasite Eve

You're viewing: Parasite Eve

Parasite Evegithub.com/khasinski/parasite-eve-decomp
Windows
Current
Recompiled (Alexbeav)github.com/Alexbeav/parasite-eve-recomp
Windows
Linux
macOS
›
Parasite Eve Recompiledgithub.com/alexbeavs-ps1-ports/parasite-eve-recomp
Windows
Linux
macOS
›

Official project information

Author's original READMEOpen on GitHub ↗

parasite-eve-decomp

Discord

Work-in-progress matching decompilation of the North American PlayStation release of Parasite Eve, target SLUS-006.62.

Looking for the playable PC port? See parasite-eve-pc (Releases).

This repository is source-only. It does not contain disc images, extracted game assets, FMV, memory cards, Sony PSYQ SDK files, compiler binaries, or generated split output. Contributors must provide their own legally obtained copy of the game and local toolchains.

Target

FieldValue
GameParasite Eve, USA Disc 1
ExecutableSLUS_006.62
Target pathassets/USA/main.exe
SHA-1452fb033f2eaa4b18aa20a5bca60b8125af3a37b
Entry PC0x80072534
Text VRAM0x80010000..0x801FE000

Progress

functions code PsyQ debt Game debt Overlays debt

Progress is measured by objdiff against a disassembly of the retail binaries, the same report.json CI publishes for decomp.dev. Regenerate locally with make report and render the badges and per-category table with make progress. This README intentionally avoids hardcoded numbers. CI regenerates the badges after auditing the report and rejects stale committed values. Run make report, make progress, and make debt before committing changes that affect progress or debt; include docs/badges/ in that commit.

The badges measure verified semantic C, not merely matching bytes. A unit is eligible only when its complete executable or overlay matches the retail SHA-1. Generated split assembly, original BIOS/SDK assembly, inline CPU instruction implementations, and data stored in .text receive no semantic-C credit. Register pins and empty compiler barriers remain eligible but are reported separately as crutch debt. Function counts remain a secondary, partly source-dependent estimate: the target generator borrows symbol names and sizes from verified C objects so objdiff can pair them. The audit checks that the two sides are consistent, but it does not turn those boundaries into independent evidence about the original translation units. Code bytes and the full linked SHA-1 are the stronger measures.

Binary matching is only one quality level. A file is finished when it is also named, typed, free of hidden fixed addresses and placed in its subsystem; docs/CONVENTIONS.md defines that bar.

For normal acceptance run make verify; it combines the source-policy gates, tests, build, and retail checksum. Structural, manifest, toolchain, and shared header changes require make verify-clean. See CONTRIBUTING.md for the working contract.

The matching policy is conservative: promoted decompilation work must match through the stock compiler pipeline. Register pins and empty asm barriers are allowed source-level constraints, but are tracked as debt, kept to a minimum, and removed after matching whenever the stock compiler still produces the retail bytes. Inline instructions are limited to named, central macros for documented GTE/COP2 operations or functions proven to have originated in assembly. Whole-function asm bodies are not decompilation results. Compiler or MASPSX modifications, post-build rewrites, and build hacks are forbidden. See docs/ASM_AND_GTE_POLICY.md.

How the game is built

SLUS_006.62 is the resident executable: boot, the script interpreter, actors, rendering, battle, menus, the AKAO sound driver and the PsyQ libraries. Rooms, scene sets, effects and a few screens are overlays read from PE.IMG into fixed RAM windows; all 162 room overlays and 22 scene sets share the window at 0x8018EFE8. Each overlay is linked separately against the executable's symbols. The memory map, the overlay windows and the build pipeline are described in docs/ARCHITECTURE.md.

Layout

  • src/main/<subsystem>/ - the executable, one directory per subsystem; PsyQ objects under src/main/psyq/lib*/ with their SDK names.
  • src/overlays/<overlay>/ - one directory per overlay binary; room_lib/ holds templates shared by many rooms.
  • include/pe1/ - game headers, one owner per declaration.
  • configs/USA/ - splat configs, symbols, relocations, SDK provenance and assembler evidence.
  • tools/scripts/, tools/tests/ - build, check and report helpers and their tests.
  • docs/ - the contracts and badges.

Naming, the subsystem taxonomy, headers, the assembler rule and code style are in docs/CONVENTIONS.md; source placement and translation-unit changes follow docs/CODE_ORGANIZATION.md. CI enforces a one-to-one mapping between manifest C entries and files under src/ and prevents organization and crutch debt from increasing.

Generated directories such as asm/, linkers/, build/, assets/, and disc/ are intentionally ignored, along with local working notes.

Toolchain

Linking and assembling use standard GNU binutils: mipsel-none-elf-as, mipsel-none-elf-ld, and mipsel-none-elf-objcopy on PATH.

Compiling matching C uses a native PSX GCC 2.7.2 cc1 from decompals/old-gcc, plus a PSYQ-compatible preprocessor and maspsx reproducing ASPSX assembler behavior. The supported compiler path is the native toolchain below. Default local paths:

sdk/psyq-4.0/PSX/INCLUDE/
tools/psyq-gcc-2.7.2/cpp
tools/old-gcc/cc1
tools/maspsx/maspsx.py

Overridable with environment variables:

export PE_CPP=/path/to/gcc-2.7.2/cpp
export PE_CC1=/path/to/stock/native/old-gcc/cc1-or-wrapper

Install the local compiler pieces with:

tools/scripts/setup_stock_cc1.sh
tools/scripts/setup_maspsx.sh

Current matching note: -G8 is part of the expected PSX small-data profile. The final build must use the unmodified stock compiler and the unmodified, pinned upstream maspsx checkout. Local patches, diagnostic compiler builds, postpasses, and MASPSX flags absent from that revision are forbidden. The upstream flags --use-comm-section and --expand-div remain available where required by the original compiler output. A function that cannot match with stock maspsx stays undecompiled until its C source is corrected; extending the assembler wrapper is not an acceptable matching technique.

Quick Start

python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

mkdir -p assets/USA
cp /path/to/your/SLUS_006.62 assets/USA/main.exe

make split
make build
make check

make split regenerates asm/ and linkers/ from the user-supplied executable, make build compiles and links build/USA/main.exe, and make check verifies its SHA-1 against retail. Useful extras:

make diff FUNC=SomeFunction
make permute FUNC=SomeFunction
make progress          # badges + per-category table from build/USA/report.json

decomp.dev report

CI publishes an objdiff report for decomp.dev on every push to main. Local commits and pushes to other branches do not update that page. The published SLUS_006.62_report artifact and the README badges come from the same audited build. It covers the main executable and all configured overlays, with PsyQ code in a separate category. The target side is a fresh disassembly of the retail binaries, never a snapshot of our own build. Generated assembly remains visible as unmatched work; text-resident data is typed as data rather than guessed functions. Report generation fails if any shipped module is absent or fails its retail SHA-1.

To reproduce it locally:

tools/scripts/setup_objdiff.sh              # pinned objdiff-cli
make build                                  # base: main executable
make overlay-build-all                      # base: all overlays
make report                                 # fresh retail target + audited report

make report regenerates the target objects directly from the retail binaries, rebuilds objdiff.json, verifies every configured module SHA-1, and runs the progress-input audit before invoking objdiff. A final report audit rejects the artifact if any code byte or function outside semantic_c receives credit.

objdiff.json is generated, not committed; run make objdiff-config before pointing the objdiff GUI at the repository.

License

See LICENSE.md. Game code and data remain the property of their respective owners; this repository contains only clean-room reimplementation source.

Read official guide
CALIFICACIÓN
—
Loading votes…
Advertisement

PROJECT FILE

Project type
NATIVE PORT
Genre
Strategy / RTS
Status
alpha
Original platform
—
Technology
Decompilation and reconstruction in C/C++
Version
—
Updated
—

Target platforms 1

Windows
View on GitHub
Advertisement