Multiplatform and Feature-rich Port based on PSX decompilation of Silent Hill 1 made with Claude and Psycross. Still in beta and is in active development.
See the codeA native PC port built on the Silent Hill PSX decompilation. What started as an experiment has become a fully playable port with a large feature set, built-in mod support, an active community, and fan translation/multilingual support. It uses PsyCross (a PsyQ SDK compatibility layer originally written for REDRIVER2) as its hardware abstraction layer, which we now maintain our own fork of. Care has been taken to leave the original game code intact wherever possible and to work around it where needed, so game logic and feel still match the PSX original. Most if not all enhancements are optional, and always will be.
The game runs as a real Windows/Linux executable compiled from decompiled C source. It is not an emulator and not a static recompilation: no part of the original binary is translated by a tool. NOTE: Linux and Mac support are a WIP. On Linux, it is recommended to use wine for the time being.
Development is heavily AI-assisted (Claude Opus 4.6, 4.7 and the newer Fable model), and we're open about that. It is not automated translation of the game. Every change is a reviewed, hand-directed edit to real source, tested against the original behaviour.
Project Website: https://sh1pc.com/
Discord: https://discord.gg/JWuNzVsQbr
The PC port is GPL-3.0. That covers pc_port/ (engine, launcher, tooling, docs) and every SH_PC_PORT addition to the decompiled sources. Files carrying an SPDX-License-Identifier: GPL-3.0-or-later header are the ones being licensed here.
The decompilation is not licensed by this project. src/, include/, configs/, asm/, lib/ and rom/ are a decompilation of Konami's Silent Hill, and remain the work of the silent-hill-decomp contributors. This project asserts no copyright over that material and grants no rights to it. The GitHub license badge above refers to the port only.
No game data is included. Silent Hill is © Konami. A legally obtained copy of the PlayStation disc is required to play; nothing from it ships here or in any release.
Full breakdown, including bundled third-party components: COPYRIGHT.md.
The game is fully playable start to finish. Every map, boss, cutscene, ending, and system works. You can complete the full game today, and the remaining known bugs are minor. Enhancements are optional and always will be: at default-faithful settings the port plays like the original PSX game (same logic, same feel, same look), and everything beyond that is opt-in.
Nightly builds: https://github.com/SlickAmogus/silent-hill-pc-nightly
renderer= config option: d3d11 / vulkan / warp).Everything else that's known is tracked on the issues page.
gamedata folder. Any filename works, since the launcher auto-detects it by region, but Silent Hill (USA).bin is a safe default.SilentHillPC_Launcher to configure, or run SilentHillPC to play. The build is unsigned, so Windows SmartScreen may block it the first time; run the game once, then the launcher.Default keyboard bindings (fixed-camera "Classic" scheme):
| PSX Button | Key | In-game |
|---|---|---|
| Cross | C | Action / shoot |
| Circle | V | Flashlight |
| Triangle | Z | Map |
| Square | X | Run |
| L1 / R1 | A / D | Sidestep left / right |
| L2 / R2 | Right Shift / Left Shift | View / aim |
| D-Pad | Arrow keys | Move |
| Start | Enter | Pause |
| Select | Space | Inventory |
PC-only keys:
| Action | Key |
|---|---|
| Reload | R |
| Quick save / load | F6 / F8 |
| Change camera style | F9 |
| Quick options overlay | F10 |
Quick options (F10) is a live in-game overlay with four pages (Graphics, HUD & Audio, Cheats, and Debug), navigable with keyboard or mouse (left-click raises a value, right-click lowers it). The Cheats page includes Free camera: once enabled, fly with the mouse + W/A/S/D, Space/C for up/down, Shift fast, Ctrl slow. A controller works too (left stick to move, right stick to look, R1/L1 fast/slow, R2/L2 up/down).
Rebinding: open the launcher and click Controls to remap keys and controller buttons. Click a bind box, then press the key (Esc or Backspace clears it). The alternate cameras (third-person / OTS / first-person) use a separate control scheme; toggle "Alt. Cam Controls" in that window to edit it. Everything is also stored as plain key_* lines in config.cfg. (Reload is fixed to R.)
pacman -S --needed mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja mingw-w64-x86_64-SDL2 mingw-w64-x86_64-openal mingw-w64-x86_64-libjpeg-turbo
git submodule update --init --recursive
This populates pc_port/PsyCross. Do not clone PsyCross separately; the build uses the submodule.pc_port/build/gamedata/Silent Hill (USA).bin
Easiest (Windows): one command.
pc_port\build.bat
Double-click build.bat for a menu (incremental / clean rebuild / build+run / nuke), or pass a mode: build.bat (incremental), build.bat rebuild, build.bat configure, build.bat run, build.bat nuke. It auto-configures (Ninja + map DLLs) on the first run and rebuilds incrementally afterward. If MSYS2 isn't at C:\msys64, set MSYS2_ROOT first (e.g. set MSYS2_ROOT=D:\msys64 && pc_port\build.bat).
Manual, from an MSYS2 MinGW64 shell (first time):
cd silent-hill-decomp/pc_port
cmake -S . -B build -G Ninja -DSH_BUILD_MAP_DLLS=ON
cmake --build build
Subsequent incremental builds: cmake --build build. -DSH_BUILD_MAP_DLLS=ON builds the maps as DLLs loaded at runtime; without it only the starting area is available.
Note: close the game before rebuilding. The linker cannot overwrite a running
SilentHillPC.exe(cannot open output file SilentHillPC.exe: Permission denied).build.batdetects this and tells you.
The game's assets are packed into two archives (SILENT. and HILL.) on the disc; there is no real filesystem. They're indexed by a 2074-entry table with 6-bit-encoded names; the full enum with paths is in include/main/fileenum.h.USA.inc.
| Ext | Type ID | Description |
|---|---|---|
| .TIM | 0 | Texture image |
| .VAB | 1 | Sound bank |
| .BIN | 2 | Overlay code / data |
| .DMS | 3 | Cutscene data |
| .ANM | 4 | Animation data |
| .PLM | 5 | Map geometry |
| .IPD | 6 | Map data |
| .ILM | 7 | Character model |
| .TMD | 8 | Mesh data |
| .DAT | 9 | Demo data |
| .KDT | 10 | Audio metadata (sequence / score) |
| .CMP | 11 | Compressed data |
Extracting and replacing files, via launcher → Mod Manager:
.bin into a loose asset tree (<FOLDER>/<NAME>.<TYPE>), the same result as the dev extract with no extra tools. Tick "Convert textures to PNG" to also dump every .TIM as a .png.gamedata/load/<FOLDER>/<NAME> (e.g. gamedata/load/SND/MAP000.VAB); the game swaps them in at load. Replacements must be no larger than the original's size (oversized textures excepted)..dds (BC7) support, per-palette/per-CLUT-row overrides, and DuckStation-style replacement packs, all managed from the Mod Manager.Beyond textures:
Model_Modding_Guide.md.Modern_Item_GLTF_Modding_Guide.md..avi files in as movie overrides; no disc rebuild needed.Full workflows: Modding_And_Extraction_Guide.md.
An in-game console for cheats, warps, and live tuning. Enable it with allow_debug_controls = 1 in config.cfg, then hold ` (backtick / tilde) in-game to open it (the game pauses while it's open). Type a command and press Enter; commands are case-insensitive. Type help or debug to list everything live.
| Command | What it does |
|---|---|
give <item> | Give a weapon / ammo / health: give allweapons, give ammo, give health (help give lists items) |
kill / killall | Kill Harry / kill nearby enemies |
spawn <name> [state] | Spawn a monster in front of Harry (spawn list) |
unlimited [0|1] | Raise the concurrent-enemy cap |
map <name> | Set the New-Game start map: loads on the next New Game, does not warp mid-session |
noclip / obst / god | Walk through walls / round-obstacle collision / invincibility |
getflags · setflag <n> <0|1> · setending <bad|bad+|good|good+> | Inspect / force story flags and the ending (set before the ending) |
pgxp [0|1] | Toggle PGXP perspective correction |
cull | Toggle world visibility culling (draw everything) |
shadowres <n> | Flashlight shadow-map resolution (up to 8192) |
flmode <0-3> · shadows [0|1] · fl/wl [color] | Flashlight mode / shadows / flashlight & world-light tint |
fov · tpsfov · tpsaimzoom · camcollide | First-person / third-person FOV and camera feel |
audioout <stereo|quad|51|71|hrtf> · xavol <0-100> · adsr [0|1] | Speaker layout / FMV volume / SPU envelopes |
fmv [name] | Play an intro / ending movie (bare fmv lists them) |
quit | Exit the game |
Many values are also live-tuning knobs; run one with no argument to read the current value: vfov, hfov, vshift, cutshift, vcropanchor, par, drawdist, fogstr, pgxpedge, pgxpnearz, shadowbias, postint, tmint, and the inventory inv* offsets. debug 2 documents them.
Also requires allow_debug_controls = 1. Debug events echo to the per-run SilentHill_<timestamp>.log.
Cheats & tools (top-row keys):
| Key | Action |
|---|---|
Esc | Warm reset to the title screen |
0 | Noclip toggle |
4 / 5 | New-Game start-map prev / next |
6 | Kill nearby enemies |
7 | Invincibility toggle |
8 | +15 handgun bullets |
9 | No-target toggle (enemies ignore Harry) |
- / = | Give Hunting Rifle / Shotgun (+ shells) |
' | Collision visualizer panel |
K · , . | Keyframe inspector / scrub |
Graphics hotkeys (no dev controls needed):
| Key | Action |
|---|---|
F1 | Toggle PGXP |
F2 | Cycle post-process effect |
F3 | Cycle tone mapping |
F4 | Cycle flashlight mode |
[ / ] | Lower / raise the selected effect's intensity |
\ | Choose which effect [ / ] adjusts |
Free camera (also toggleable from the F10 quick-options Cheats page, no dev controls needed there):
| Key | Action |
|---|---|
Num * | Free camera on / off (Harry stays put; his input is ignored) |
| Mouse | Look (follows your mouse sensitivity / invert settings) |
W/A/S/D | Fly forward / left / back / right along the view |
Space / C | Move up / down |
Shift / Ctrl | Fast / slow |
Num 3 | Reset cam nudge / in-game rescue teleport |
Num . | Log Harry's position |
A controller drives the free camera too: left stick moves, right stick looks, R1/L1 go fast/slow, R2/L2 move up/down.
With the free camera off, the numpad keys nudge the normal game camera, a live camera-tuning aid. (Camera styles, meaning third-person, OTS, and first-person, are cycled with the Change Camera key, F9 by default. The F10 quick-options overlay exposes most of the graphics/debug toggles below without memorizing keys.)
I'm on Discord as @KushAstronaut, and the project has a Discord server: https://discord.gg/JWuNzVsQbr
Silent Hill is © Konami and this does not contain any game assets. You must provide a legally obtained dump of Silent Hill for PSX to use.
(top 30 of 31)
C
71.8%
C++
14.5%
C#
7.8%
Python
3.5%
BitBake
1.5%
Multiplatform and Feature-rich Port based on PSX decompilation of Silent Hill 1 made with Claude and Psycross. Still in beta and is in active development.
See the codeA native PC port built on the Silent Hill PSX decompilation. What started as an experiment has become a fully playable port with a large feature set, built-in mod support, an active community, and fan translation/multilingual support. It uses PsyCross (a PsyQ SDK compatibility layer originally written for REDRIVER2) as its hardware abstraction layer, which we now maintain our own fork of. Care has been taken to leave the original game code intact wherever possible and to work around it where needed, so game logic and feel still match the PSX original. Most if not all enhancements are optional, and always will be.
The game runs as a real Windows/Linux executable compiled from decompiled C source. It is not an emulator and not a static recompilation: no part of the original binary is translated by a tool. NOTE: Linux and Mac support are a WIP. On Linux, it is recommended to use wine for the time being.
Development is heavily AI-assisted (Claude Opus 4.6, 4.7 and the newer Fable model), and we're open about that. It is not automated translation of the game. Every change is a reviewed, hand-directed edit to real source, tested against the original behaviour.
Project Website: https://sh1pc.com/
Discord: https://discord.gg/JWuNzVsQbr
The PC port is GPL-3.0. That covers pc_port/ (engine, launcher, tooling, docs) and every SH_PC_PORT addition to the decompiled sources. Files carrying an SPDX-License-Identifier: GPL-3.0-or-later header are the ones being licensed here.
The decompilation is not licensed by this project. src/, include/, configs/, asm/, lib/ and rom/ are a decompilation of Konami's Silent Hill, and remain the work of the silent-hill-decomp contributors. This project asserts no copyright over that material and grants no rights to it. The GitHub license badge above refers to the port only.
No game data is included. Silent Hill is © Konami. A legally obtained copy of the PlayStation disc is required to play; nothing from it ships here or in any release.
Full breakdown, including bundled third-party components: COPYRIGHT.md.
The game is fully playable start to finish. Every map, boss, cutscene, ending, and system works. You can complete the full game today, and the remaining known bugs are minor. Enhancements are optional and always will be: at default-faithful settings the port plays like the original PSX game (same logic, same feel, same look), and everything beyond that is opt-in.
Nightly builds: https://github.com/SlickAmogus/silent-hill-pc-nightly
renderer= config option: d3d11 / vulkan / warp).Everything else that's known is tracked on the issues page.
gamedata folder. Any filename works, since the launcher auto-detects it by region, but Silent Hill (USA).bin is a safe default.SilentHillPC_Launcher to configure, or run SilentHillPC to play. The build is unsigned, so Windows SmartScreen may block it the first time; run the game once, then the launcher.Default keyboard bindings (fixed-camera "Classic" scheme):
| PSX Button | Key | In-game |
|---|---|---|
| Cross | C | Action / shoot |
| Circle | V | Flashlight |
| Triangle | Z | Map |
| Square | X | Run |
| L1 / R1 | A / D | Sidestep left / right |
| L2 / R2 | Right Shift / Left Shift | View / aim |
| D-Pad | Arrow keys | Move |
| Start | Enter | Pause |
| Select | Space | Inventory |
PC-only keys:
| Action | Key |
|---|---|
| Reload | R |
| Quick save / load | F6 / F8 |
| Change camera style | F9 |
| Quick options overlay | F10 |
Quick options (F10) is a live in-game overlay with four pages (Graphics, HUD & Audio, Cheats, and Debug), navigable with keyboard or mouse (left-click raises a value, right-click lowers it). The Cheats page includes Free camera: once enabled, fly with the mouse + W/A/S/D, Space/C for up/down, Shift fast, Ctrl slow. A controller works too (left stick to move, right stick to look, R1/L1 fast/slow, R2/L2 up/down).
Rebinding: open the launcher and click Controls to remap keys and controller buttons. Click a bind box, then press the key (Esc or Backspace clears it). The alternate cameras (third-person / OTS / first-person) use a separate control scheme; toggle "Alt. Cam Controls" in that window to edit it. Everything is also stored as plain key_* lines in config.cfg. (Reload is fixed to R.)
pacman -S --needed mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja mingw-w64-x86_64-SDL2 mingw-w64-x86_64-openal mingw-w64-x86_64-libjpeg-turbo
git submodule update --init --recursive
This populates pc_port/PsyCross. Do not clone PsyCross separately; the build uses the submodule.pc_port/build/gamedata/Silent Hill (USA).bin
Easiest (Windows): one command.
pc_port\build.bat
Double-click build.bat for a menu (incremental / clean rebuild / build+run / nuke), or pass a mode: build.bat (incremental), build.bat rebuild, build.bat configure, build.bat run, build.bat nuke. It auto-configures (Ninja + map DLLs) on the first run and rebuilds incrementally afterward. If MSYS2 isn't at C:\msys64, set MSYS2_ROOT first (e.g. set MSYS2_ROOT=D:\msys64 && pc_port\build.bat).
Manual, from an MSYS2 MinGW64 shell (first time):
cd silent-hill-decomp/pc_port
cmake -S . -B build -G Ninja -DSH_BUILD_MAP_DLLS=ON
cmake --build build
Subsequent incremental builds: cmake --build build. -DSH_BUILD_MAP_DLLS=ON builds the maps as DLLs loaded at runtime; without it only the starting area is available.
Note: close the game before rebuilding. The linker cannot overwrite a running
SilentHillPC.exe(cannot open output file SilentHillPC.exe: Permission denied).build.batdetects this and tells you.
The game's assets are packed into two archives (SILENT. and HILL.) on the disc; there is no real filesystem. They're indexed by a 2074-entry table with 6-bit-encoded names; the full enum with paths is in include/main/fileenum.h.USA.inc.
| Ext | Type ID | Description |
|---|---|---|
| .TIM | 0 | Texture image |
| .VAB | 1 | Sound bank |
| .BIN | 2 | Overlay code / data |
| .DMS | 3 | Cutscene data |
| .ANM | 4 | Animation data |
| .PLM | 5 | Map geometry |
| .IPD | 6 | Map data |
| .ILM | 7 | Character model |
| .TMD | 8 | Mesh data |
| .DAT | 9 | Demo data |
| .KDT | 10 | Audio metadata (sequence / score) |
| .CMP | 11 | Compressed data |
Extracting and replacing files, via launcher → Mod Manager:
.bin into a loose asset tree (<FOLDER>/<NAME>.<TYPE>), the same result as the dev extract with no extra tools. Tick "Convert textures to PNG" to also dump every .TIM as a .png.gamedata/load/<FOLDER>/<NAME> (e.g. gamedata/load/SND/MAP000.VAB); the game swaps them in at load. Replacements must be no larger than the original's size (oversized textures excepted)..dds (BC7) support, per-palette/per-CLUT-row overrides, and DuckStation-style replacement packs, all managed from the Mod Manager.Beyond textures:
Model_Modding_Guide.md.Modern_Item_GLTF_Modding_Guide.md..avi files in as movie overrides; no disc rebuild needed.Full workflows: Modding_And_Extraction_Guide.md.
An in-game console for cheats, warps, and live tuning. Enable it with allow_debug_controls = 1 in config.cfg, then hold ` (backtick / tilde) in-game to open it (the game pauses while it's open). Type a command and press Enter; commands are case-insensitive. Type help or debug to list everything live.
| Command | What it does |
|---|---|
give <item> | Give a weapon / ammo / health: give allweapons, give ammo, give health (help give lists items) |
kill / killall | Kill Harry / kill nearby enemies |
spawn <name> [state] | Spawn a monster in front of Harry (spawn list) |
unlimited [0|1] | Raise the concurrent-enemy cap |
map <name> | Set the New-Game start map: loads on the next New Game, does not warp mid-session |
noclip / obst / god | Walk through walls / round-obstacle collision / invincibility |
getflags · setflag <n> <0|1> · setending <bad|bad+|good|good+> | Inspect / force story flags and the ending (set before the ending) |
pgxp [0|1] | Toggle PGXP perspective correction |
cull | Toggle world visibility culling (draw everything) |
shadowres <n> | Flashlight shadow-map resolution (up to 8192) |
flmode <0-3> · shadows [0|1] · fl/wl [color] | Flashlight mode / shadows / flashlight & world-light tint |
fov · tpsfov · tpsaimzoom · camcollide | First-person / third-person FOV and camera feel |
audioout <stereo|quad|51|71|hrtf> · xavol <0-100> · adsr [0|1] | Speaker layout / FMV volume / SPU envelopes |
fmv [name] | Play an intro / ending movie (bare fmv lists them) |
quit | Exit the game |
Many values are also live-tuning knobs; run one with no argument to read the current value: vfov, hfov, vshift, cutshift, vcropanchor, par, drawdist, fogstr, pgxpedge, pgxpnearz, shadowbias, postint, tmint, and the inventory inv* offsets. debug 2 documents them.
Also requires allow_debug_controls = 1. Debug events echo to the per-run SilentHill_<timestamp>.log.
Cheats & tools (top-row keys):
| Key | Action |
|---|---|
Esc | Warm reset to the title screen |
0 | Noclip toggle |
4 / 5 | New-Game start-map prev / next |
6 | Kill nearby enemies |
7 | Invincibility toggle |
8 | +15 handgun bullets |
9 | No-target toggle (enemies ignore Harry) |
- / = | Give Hunting Rifle / Shotgun (+ shells) |
' | Collision visualizer panel |
K · , . | Keyframe inspector / scrub |
Graphics hotkeys (no dev controls needed):
| Key | Action |
|---|---|
F1 | Toggle PGXP |
F2 | Cycle post-process effect |
F3 | Cycle tone mapping |
F4 | Cycle flashlight mode |
[ / ] | Lower / raise the selected effect's intensity |
\ | Choose which effect [ / ] adjusts |
Free camera (also toggleable from the F10 quick-options Cheats page, no dev controls needed there):
| Key | Action |
|---|---|
Num * | Free camera on / off (Harry stays put; his input is ignored) |
| Mouse | Look (follows your mouse sensitivity / invert settings) |
W/A/S/D | Fly forward / left / back / right along the view |
Space / C | Move up / down |
Shift / Ctrl | Fast / slow |
Num 3 | Reset cam nudge / in-game rescue teleport |
Num . | Log Harry's position |
A controller drives the free camera too: left stick moves, right stick looks, R1/L1 go fast/slow, R2/L2 move up/down.
With the free camera off, the numpad keys nudge the normal game camera, a live camera-tuning aid. (Camera styles, meaning third-person, OTS, and first-person, are cycled with the Change Camera key, F9 by default. The F10 quick-options overlay exposes most of the graphics/debug toggles below without memorizing keys.)
I'm on Discord as @KushAstronaut, and the project has a Discord server: https://discord.gg/JWuNzVsQbr
Silent Hill is © Konami and this does not contain any game assets. You must provide a legally obtained dump of Silent Hill for PSX to use.
(top 30 of 31)
C
71.8%
C++
14.5%
C#
7.8%
Python
3.5%
BitBake
1.5%