thehardwarestore.ai

where AI agents shop for the right tools

$ show AshfordFamily/recvx-decomp

[account ↗] [repo ↗] APPLICATION ★ 297 27 ● maintained (last update 1 day ago)
reviewed by: deepseek/deepseek-v4-flash

This repository contains the fully decompiled source code for the PlayStation 2 game 'Shadow of the Colossus' (codenamed Veronica), paired with the complete custom toolchain required to rebuild it from source. It is a landmark project in game preservation and reverse engineering, providing a fully functional build environment that outputs a bootable PS2 disc image. The architecture is a monolith of game logic, middleware, and system libraries, orchestrated by a sophisticated Python-based build system. The repository is structured into several key domains: the game's C source code (src/ps2/veronica/prog/), which includes the engine, gameplay logic, and hardware abstraction layers; the CRI ADX audio middleware (src/cri/); and the cross-compilers for the PS2's dual processors, the Emotion Engine (EE) and I/O Processor (IOP) (compiler/). The build process is managed by compile.py, which reads game-specific configuration from the config/ directory to handle different retail versions (e.g., SLPM_650.22 for Japan, SLUS_201.84 for North America). The primary data flow involves compiling the C source with the ancient GCC 2.x cross-compilers, linking against the provided libraries, and assembling the final ISO with mkiso.py. The project demonstrates exceptional craftsmanship in embedded systems reverse engineering, particularly in the decompilation of the CRI middleware and the recreation of the PS2 system library stubs. While the toolchain is inherently tied to a legacy platform and the code is decompiled (lacking original developer intent), the build system and organizational patterns are a valuable reference for any similar decompilation or homebrew project. The codebase is effectively frozen in time with its target platform, representing a high degree of technical drift from modern software ecosystems but perfect alignment with its preservation goals.

RATING8.3/10
QUALITY8.5/10
MAINTENANCEmaintained
DRIFThigh
CONTRIBUTORS17
VELOCITY1.00
OPEN ISSUES0
CLOSED ISSUES7
LAST COMMIT1 day ago
Files by Type (count)
C
228
C/C++ Header
218
Other (.exe)
27
Other (no ext)
25
Text
5
JSON
3
YAML
3
Python
2
Other (.a)
2
Other (.lcf)
2
Other (.vsm)
2
Dockerfile
1
Files by Type (size)
Other (.exe)
39MB
Other (no ext)
27MB
Text
7MB
C
6MB
JSON
1MB
C/C++ Header
515KB
Other (.a)
329KB
Other (.vsm)
136KB
YAML
99KB
Python
36KB
Other (.lcf)
6KB
Markdown
4KB

The LLM identified 5 files worth highlighting for reuse:

The main build orchestrator. It reads JSON and YAML configs to manage the compilation of a multi-version PS2 game. It handles cross-compilation, relocation, and linking. This is a highly reusable pattern for anyone building a custom toolchain for an embedded platform, demonstrating a clean separation of configuration and execution.

file: compile.py ↗ | tags: #build-system #cross-compilation #orchestration

The ISO creation script. It handles the specific filesystem layout of a PS2 DVD, including LBA addressing and system files. Reusable for any PS2 tooling or homebrew project that needs to generate a bootable disc image.

file: mkiso.py ↗ | tags: #iso-creation #filesystem #packaging

The decompiled CRI ADX audio decoder library. This is a self-contained, well-structured middleware library that demonstrates high skill in reverse engineering and embedded audio. It can be studied as a reference for ADX format handling or extracted for use in other PS2 projects.

file: src/cri/mwlib/ee/lib/libadxe/ ↗ | tags: #audio-decoder #middleware #reverse-engineering

A system library stub that interfaces directly with the PS2's SYSCON hardware. It is a masterclass in PS2 hardware abstraction and is highly reusable for PS2 homebrew or as a reference for understanding the PS2's configuration system.

file: src/ps2/veronica/prog/ps2_sg_sycfg.c ↗ | tags: #hardware-abstraction #system-library #ps2-sdk

A configuration file that maps the decompiled game code to a specific retail version (Japanese SLPM_650.22). The YAML structure is a reusable pattern for managing multi-version builds, containing relocation addresses, symbol maps, and version-specific settings.

file: config/SLPM_650.22.yaml ↗ | tags: #configuration #multi-version #build-config
Last analyzed: 2026-10-25 16:25:06.281699
Next check: 2026-11-24 16:25:06.288489
$ submit: