Silent Hill: Book of Memories Recomp

Silent Hill: Book of Memories for PC is an unofficial native port of the PS Vita game for Windows and Linux, featuring higher resolutions and controller support.

README

Silent Hill: Book of Memories for PC

An unofficial native port of the PS Vita game Silent Hill: Book of Memories, for Windows and Linux, including the Steam Deck, built with Project Nativ. The game's code is recompiled into a native program on your own machine, from your own copy of the game.

This repository contains no game files, game code or firmware, and neither do its releases. You need your own copy of the game. Setup never downloads it for you.

Status

This is an early port. Windows is tested on one PC. Linux has run only in a test setup, not yet on a real Steam Deck. The game runs from the menus into gameplay, with sound, saves, controller support and keyboard and mouse controls. Expect bugs and possible crashes, and keep a copy of your saves.

WorksDetails
GraphicsDeferred lighting, UI and depth, drawn on your GPU with Vulkan
ResolutionGameplay 3D renders at full 4K, not stretched from the Vita's resolution
FullscreenAlt+Enter uses your display's resolution and keeps the game's aspect ratio
ControlsKeyboard and mouse, and controllers

Known problems:

  • Very bright surfaces, like faces under strong light, can show small teal flecks.
  • Small dark patches may appear in some blood decals and shadows.
  • Text entry through the Vita's on-screen keyboard is not implemented.
  • Multiplayer is not implemented.
  • Long play sessions have had little testing.

What you need

  • 64-bit Windows 10 or 11, or 64-bit Linux such as SteamOS, and a GPU with Vulkan drivers
  • About 5 GB of free disk space during setup, and about 1.6 GB after
  • Your copy of the game: the US release, title ID PCSE00011, version 1.00, as a folder copied from ux0:app/PCSE00011 on your Vita. Its folder holds eboot.bin. Other regions and versions are refused, because the port's patches are made for this exact build (SHA-256 of its main program: 4693b338434d8f7fdd913002672f530a145eab1ecda6bd1eae68668465d3fc5c).
  • Sony's Vita firmware, either of:
    • the firmware update file (PSP2UPDAT.PUP or PSVUPDAT.PUP) from Sony's PS Vita system software update page
    • a Vita3K folder with the firmware installed

Install

  1. Download SilentHillBoM-PC-Setup-<version>.exe from the Releases page. It holds everything setup needs, so nothing else is downloaded.
  2. Run it. Windows may warn you, because the program isn't signed.
  3. Choose an install folder, your firmware and your game folder, then press Install. The build takes about 8 minutes on a modern PC and uses all its CPU cores.
  4. Press PLAY.

When setup finishes, you can delete the download. Setup builds the game on your PC from your own files, then removes the tools, the firmware and everything else it no longer needs.

Install on a Steam Deck

  1. Switch to Desktop Mode, and copy your firmware file and game folder onto the Deck.
  2. Download SilentHillBoM-Linux-Setup-<version> from the Releases page.
  3. Right-click the file, open Properties > Permissions, and turn on Is executable.
  4. Run it, choose your folders and press Install. Keep the Deck plugged in, because the build uses all its CPU cores.
  5. Press Add to Steam in the launcher. You can then start the game from your library in Gaming Mode, where the launcher works with the Deck's controls.

The same file works on other 64-bit Linux systems. File pickers need kdialog or zenity, and otherwise you can type the paths. Saves work on both systems, so one Syncthing folder can keep a Windows PC and a Deck in step.

The portable folder

Silent Hill Book of Memories/
    Silent Hill Book of Memories        launcher (.exe on Windows)
    Game/                               the game and its settings
    Saves/                              your saves, and nothing else
    Save Backups/                       what an import replaced

The folder is about 1.6 GB, and all its paths are relative. Move it, rename it or copy it to another PC with the same operating system, and it keeps working. On Linux, --play skips the launcher and goes straight into the game. A desktop shortcut is optional, and the launcher updates it after a move.

Saves
  • Syncing: point Syncthing or a similar tool at the Saves folder. Close the game and let the sync finish before you play on another machine. Settings stay in Game, so each machine keeps its own.
  • Export writes your saves to a zip file.
  • Import takes a zip file or a folder. Your current saves are copied to Save Backups first.

To update, run a newer setup program and choose the same folder. You will need your firmware and game files again. Your saves and settings are kept.

Controls

VitaKeyboard and mouse
Left stickW A S D
CrossSpace
CircleE
Square1, or left mouse button
Triangle2, or right mouse button
L / RLeft Shift / G
Start / SelectTab / F
D-padT V Q X (up, down, left, right)
Touch screenHold Left Alt and use the mouse

In menus, the arrow keys move, Enter is Cross and Esc is Start.

KeyAction
Alt+EnterToggle fullscreen
- and = (also keypad - and +)Volume down and up. The level is remembered.
F10In-game menu: settings and key bindings
F1Performance display
F2Change render scale

Building from source

The build tools aren't in this repository. Unpack python/, toolchain/, SDL3.dll and Project Nativ.exe from the Project Nativ v0.1.5 Windows release into the repository's top folder. Then build the setup program, which refuses to run if a tracked file looks like game data:

python/python.exe releases/build_app.py v0.2.0

On Linux, use the python/ and toolchain/ from Project Nativ's AppImage instead, and run python/bin/python3 in place of python/python.exe. The result is in releases/out. The program's source is in releases/app, and releases/make_portable.py lays out the portable folder.

To work on the game itself, add your files and run it in place:

python/python.exe pipeline/vitarecomp.py firmware <firmware file>
python/python.exe pipeline/vitarecomp.py add <game folder>
python/python.exe pipeline/vitarecomp.py run PCSE00011

CHANGES.md lists what differs from Project Nativ. docs/NATIV-README.md is Project Nativ's own README, and some of its links point to documents that are only in its repository. The GLSL sources for the shader tables this port changed are in dev/sh-bom/shaders.

The .gitignore keeps your game files, firmware, licences, generated code, builds and saves out of git. Please don't commit or share any of them.

Legal

This is an unofficial fan project, not affiliated with or endorsed by Konami, Sony or the game's developers. Silent Hill is a trademark of Konami. Use this only with a copy of the game you own.

This port is based on Project Nativ and is free software under the GNU General Public License, version 2 or (at your option) any later version: see LICENSE. Third-party code keeps its own licence: see THIRD_PARTY.md. The setup program also carries Python and the LLVM-MinGW compiler, with their licences inside it.

Credits

  • Project Nativ for the recompiler, runtime and tools
  • Vita3K, used as a reference for Vita behaviour

Much of this port's code and documentation was written with AI assistance.