OpenPeteDownload

A native PC port of Spyro the Dragon. Named after Spyro's name during original development. A high performance static recomp with a custom renderer to optionally fix all the original's visual artifacts.

Windows x86-64 · v0.1.4 · 117 MB The source tree carries copyrighted game data used for validation: memory dumps, reference screenshots and hardware traces. It can't be published until that is separated out.

OpenPete needs your own copy of the original NTSC-U disc (SCUS-94228). No game data is distributed. The build is unsigned, so Windows will warn the first time you run it—see known issues, and the FAQ for the checksum to verify the download against.

How it works

The retail executable is statically recompiled into C. Its PSX library calls are handled by a custom runtime backed by PsyCross. The recompiled code can be surgically replaced with hand-decompiled C.

The renderer reads directly from game state rather than from a stream of PSX GPU commands, so it knows what a polygon is and not just where it landed, allowing full control over presentation. This allows rendering with true depth, high frame rate, arbitrary aspect ratio, high resolution while completely eliminating PSX wobble and warped textures.

  • Compiled ahead of time The PSX executable is translated to C and compiled before it runs. Nothing is interpreted.
  • Decompilation-backed Matched C source replaces recompiled output, so more of the game becomes readable and performant over time.
  • Gameplay-identical Enhancements never touch the game's RAM or any gameplay-readable byte. Compared against emulator memory traces.
  • Game-agnostic runtime While the custom renderer is Spyro 1 specific, the runtime is game-agnostic, so prototypes and other regions of Spyro 1, and Spyro 2/3 can be potentially supported in the future.

Features

Drag the divider to wipe between the original PlayStation output and OpenPete. Pick a frame rate and aspect ratio, and toggle enhancements, to change what the right-hand side is running.

Scene
Original PSX OpenPete

High frame rate

Rendering is decoupled from simulation. The game still ticks at 29.913 Hz exactly as it did on hardware; presentation runs at any framerate your PC can support with movement, transforms, animation and scrolling textures interpolated sub-tick.

Widescreen

Hor+ widescreen (16:9, 21:9, 32:9, etc. or follow-the-window). Extending the aspect ratio does not affect gameplay such as enemy behavior.

HD texture packs

Drop replacement PNGs of any resolution into a folder and they display in place of the originals: world, mobys, HUD and the title logo alike.

Extended draw distance

The low-poly and low-resolution LOD tiers can be pushed far back or switched off entirely so distant terrain keeps its detail instead of snapping in.

Optional PSX Style

By default, vertices keep their full precision, textures are sampled with true perspective correction and colour is full 24-bit. Toggles recreate the console's vertex snapping, affine texture mapping and 15-bit dithered colour, for when you want the hardware's exact look.

True depth buffer

Geometry is depth-tested rather than sorted through the PlayStation's ordering table, so the sorting artifacts inherent to a painter's algorithm don't occur.

Save states, rewind, runahead

Snapshot and restore anywhere, step frame by frame, rewind, or run ahead of the simulation to cancel out input latency.

Modding support WIP

Source-first mods, C and shaders both, compiled when the game starts, with no toolchain to install. They can override game functions, add per-object shaders, and interact with the runtime itself.

Music replacement

Any of the 48 music tracks can be replaced with a WAV file. The game still drives looping and the long-idle track rotation, so overrides behave like the originals.

In-game settings

A pause-menu-styled overlay, drawn with the game's own gold glyph text, changes aspect, frame rate, supersampling, LOD, textures and wobble live.

Requirements

Operating system

Windows 10/11 (64-bit)

Nothing in the build demands a particular Windows version; the limiting factor is Vulkan 1.2 driver support.

Processor

Any x86-64 CPU

Any 64-bit Intel or AMD chip. Roughly anything from the last 15 years should be fine.

Graphics

A GPU with Vulkan 1.2 support

Roughly a GeForce GTX 600, Radeon HD 7000 or Intel HD 500-series and newer, on a current driver. There is no Direct3D or OpenGL fallback. Around 2 GB of VRAM at 1080p with SSAA ×4.

Memory

8 GB recommended, 4 GB workable

Playing takes about 300 MB.

Disk space

~1.2 GB once first run finishes

The download unpacks to ~450 MB, most of it the bundled compiler. First run then copies your disc image into library/ (~640 MB) and writes the code it compiles from it alongside (~90 MB).

Changelog

v0.1.4

Current
17 August 2026

  • Fixed semi-transparent terrain showing through the ground and through the dragon during rescue cutscenes
  • Lowered the CPU requirement to plain x86-64, so pre-2013 processors without AVX2 can run the build
  • Fixed in-game menu not saving certain settings

v0.1.3

14 August 2026

  • Fixed a crash when opening a locked chest in Lofty Castle. The same issue caused silent memory corruption in Peace Keepers, Dry Canyon and Tree Tops
  • Capped SSAA to 4×

v0.1.2

Initial release
13 August 2026

  • Initial public release

Known issues

Graphics

Depth issues

The PSX OT rendering covers up issues in the original game's geometry that are exposed by rendering with a true depth buffer.

  • Toasty's moving terrain walls are occluded by grass terrain after lowering
  • Dragons during cutscenes sometimes render through themselves

Graphics

Visual artifacts

Various visual artifacts remain, including:

  • Particles of the same class can streak between each other with frame interpolation enabled
  • Mobys sometimes render way too large for a few frames
  • Some text characters rotate in the end credits with frame interpolation enabled

Graphics

Widescreen cutscenes

Rendering cutscenes at widescreen aspect ratios reveal missing geometry or mispositioned mobys.

Graphics

Fog scaling

Using extended level-of-detail, the fog scale is not being correctly applied (e.g. in Beast Makers).

Platform

Windows builds are unsigned

Until code signing is in place, SmartScreen will warn on first run or antivirus may report false positives. The build is safe, but you may need to override any warnings.

Audio

Incorrect audio mixing

Audio is the wrong volume for certain sounds, and the current stereo mixing solution can result in a tinny echo.

Audio

Audio desynchronization

When holding Tab to fast-forward, the audio is not sped up and can fall out of sync with the simulation.

Platform

Game window

Dragging or resizing the window pauses gameplay.

FAQ

Questions?

Do I need the original game?

Yes. OpenPete ships no game data at all: no levels, textures, audio or code from the disc. You supply an original NTSC-U Spyro the Dragon disc image (SCUS-94228), which is verified by checksum before anything runs. Only a .bin/.cue disc image with the sha1 hash 1e08ae8df01acf7ee5d9cb6931b5f8c1bc905fcb or sha256 hash 95f03abf97c9ff0b2a64888ed7dbbb4b59a7b4363cf188cd0a562b95cfd4809f is supported right now.

Is this an emulator?

No. The game's machine code is translated to C ahead of time and compiled for your CPU, and a runtime handles the console's system calls. No hardware is simulated and no BIOS is involved.

Which release does it support?

NTSC-U SCUS-94228 only. Other regions and revisions have different code layouts, and the port's function addresses and overlay maps are specific to this one. Support for other releases is possible but not planned.

Do the enhancements change the game?

No. Widescreen, frame rate, draw distance and texture replacement only change the presentation. They never write to the game's memory or to anything the game can read back. Regression tests compares simulation output against emulation traces to catch any leaks.

Will my existing saves work?

Yes. Saves are written to an ordinary .mcr memory card image on your disk, the same format emulators use, so you can bring a card across in either direction.

What are the controls?

Game:

  • W A S D Left stick
  • Arrows D-pad
  • C Cross
  • V Circle
  • X Square
  • Z Triangle
  • Left Shift L1
  • Right Shift R1
  • Left Ctrl L2
  • Right Ctrl R2
  • Enter Start
  • Space Select

OpenPete:

  • Esc Open and close the settings menu
  • Alt+Enter Fullscreen
  • M Developer overlay: every setting, live
  • I Frame interpolation on/off
  • L Extended draw distance on/off
  • F Free camera; then W A S D to move, Space and Shift to rise and drop, arrows to look, [ and ] for speed
  • T Drop Spyro at the free camera
  • 1 Save state
  • 2 Load state
  • 3 Change save slot
  • Tab Hold to fast-forward
  • F7 Pause the simulation
  • F8 Step simulation one tick when paused
What about Spyro 2 and Spyro 3?

No plans yet. The runtime is deliberately game-agnostic: it holds no Spyro-specific addresses, and per-game details sit behind a narrow interface.

There's still a lot of work to perfect Spyro 1.

Can I mod it?

Soon. Mods are written as C source and shaders, compiled when the game boots, with no development toolchain to install. They can override game functions, add post-processing effects (like CRT filters), apply shaders to specific objects (e.g. Spyro, terrain), replace textures and swap music.

The modding SDK does not ship with this release: the API is still in heavy flux and is being stabilized.

How do I get high frame rates without speeding the game up?

The simulation is pinned to the console's 29.913 Hz tick and never runs faster. Extra frames are generated by interpolating transforms, animation, camera and texture scroll between two simulated ticks, so motion is smooth while physics, timing and behavior stay exactly as authored.

This does have the side effect of adding 1 sim-tick of input latency.

Can I speedrun it?

Not recommended yet. Times from OpenPete are not comparable to console or emulator runs, and no leaderboard recognizes it as a platform.

Things to fix

Tick pacing

The simulation is meant to advance at a fixed 29.913 Hz, but runtime and renderer work can still stall a tick: a slow present blocks the simulation thread, so the frames can drift from wall-time making it inaccurate.

Input timing

Input is currently delegated to PsyCross and needs reworking to be made more consistent and precise.

Load times

Level load times need to be slowed down a bit and made consistent in a speedrun mode to account for slower hardware.

Feature lockout

Save states, rewind, runahead, and non-whitelisted mods (e.g. simple skins) would need locking out for a speedrun mode.

LiveSplit integration

Integration with LiveSplit for automatic and accurate timing.

But sure, you can speedrun it for funzies!

Which platforms can I run it on?

Windows on x86-64 is what is published today. A Linux AppImage is being tested now! macOS on Apple Silicon is planned but has no build yet.

How do I verify the download?

The Windows zip for v0.1.4 has the SHA-256 hash 7ba215834c6a1e23d0642b6c749c6335853a18cc566805c0a39bcf2cd5ab1359. In PowerShell, Get-FileHash openpete-v0.1.4.zip prints the same value if the file arrived intact.

About

OpenPete is based on a matching decompilation of Spyro the Dragon: an effort to rewrite the game in C such that the same compiler reproduces the retail executable byte for byte. If the bytes match, the C is what the game does.

Matching every function takes years, so the port doesn't wait on it. Static recompilation covers whatever hasn't been decompiled yet, and matched functions replace it as they land.

Developed by @tyscorp

Built on

  • spyro-1 The Spyro 1 matching decompilation and the source of every function that has been matched so far.
  • PSXRecomp The static recompiler that translates the retail MIPS instructions into C, covering everything the decompilation hasn't reached.
  • PsyCross A reimplementation of Sony's PSY-Q libraries, which services the game's calls into the console's SDK.

Special thanks to @altro50, for his continued work on reverse engineering and decompilation of Spyro 1.