sh23ds

Install

Under an hour with the browser packer, most of it waiting. You need a computer, the SD card and the console.

1.3 GB on the SD cardAny 3DS with Luma3DSv0.2.2

Step 1

What you need

5 min
  • A 3DS with Luma3DS and FBIAny model; the original 3DS and 2DS get a lighter profile. Not set up yet? Follow 3ds.hacks.guide.
  • Silent Hill 2 PC, Director’s CutYour own unmodified install, with sh2pc.exe and the data folder.
  • A browser, or DockerChrome, Edge, Firefox or Safari on a computer runs the packer in the page. Docker runs it on the command line.
  • Space1.3 GB on the SD card, and about 1.5 GB free on the computer while the packer runs.
Step 2

Build the game data

10 min to 2 h

The packer turns your copy into files the port reads. It only reads the game folder.

In your browser

Choose the game folder on the packer page and save the zip it makes. Nothing gets uploaded or installed.

Or with Docker

Your computer
macOS
The one with sh2pc.exe in it. Drag the folder into a terminal to print its path. Colima only shares your home folder with Docker. Move the game inside it, or share that path in Colima.

Check your copy

Terminal
md5 -q "/Users/you/Games/Silent Hill 2/sh2pc.exe"

It should print f3f5360298b6d0f6f2e09cf24a0925d1. Anything else is a different build, and the packer will stop.

Run the packer

Run it where you want the output. The first run downloads the packer, about 900 MB.

Terminal
mkdir -p sd
docker run --rm \
  -v "/Users/you/Games/Silent Hill 2:/game:ro" \
  -v "$PWD/sd:/out" \
  ghcr.io/ankushkun/sh23ds-packer

If something goes wrong

“sh2pc.exe is not the Director’s Cut build”

Your exe is another version or was replaced; the Enhanced Edition’s setup swaps it, for one. Put the Director’s Cut exe back. EE packs in the sh2e folder are fine and get used.

“Mount your Silent Hill 2 folder at /game”

The path before :/game doesn’t hold sh2pc.exe and data. Keep the quotes, since the name has spaces.

It stopped partway

Run the same command again and finished steps are skipped. Add -e FRESH=1 to start over.

Docker can’t find the image

Check Docker is running with docker info. Or build the image from a clone with docker build -f tools/packer/Dockerfile -t sh23ds-packer . and use sh23ds-packer as the name.

Without Docker

With Python 3.11+ (numpy, Pillow, pefile), ffmpeg and devkitPro’s tex3ds on your PATH, run tools/make_pack.sh "/path/to/Silent Hill 2" from a clone. It writes ./pack; copy that to sdmc:/3ds/sh23ds/.

Step 3

Copy it to the SD card

10 min

Power off the 3DS and put its SD card in the computer, or copy over Wi-Fi with ftpd. Copy the 3ds folder from sd to the root of the card. It merges with the one already there.

The card afterwards
sdmc:/
`-- 3ds/
    |-- dspfirm.cdc     from DSP1
    `-- sh23ds/         from the packer
        |-- bg/ chr/ demo/ events/
        |-- map/ movie/ pic/ sound/ ui/
        `-- save.dat    your saves
No 3ds/dspfirm.cdc?Run DSP1 once from the Homebrew Launcher. Without it the game is silent.
Keep your savesThey live in 3ds/sh23ds/save*.dat. Copy them out before you replace the folder.
Step 4

Install the app

2 min
Item
QR code for the latest sh23ds.cia
sh23ds.cia

Open FBI. Remote Install, then Scan QR Code. Point the camera at the code.

The CIA asks a New 3DS for its fast clock, L2 cache and extra memory. No Wi-Fi? Put the file on the card and install it from FBI’s SD browser.

Step 5

Play

Start Silent Hill 2 from the HOME Menu. Options has the PC’s settings, the hardware profile and the button layout.

Control options
Circle Pad
Move (Rotational or Directional, in Options)
B, held
Run
A
Check, open, pick up
R + A
Ready the weapon and attack
X
Flashlight
Y
Items
Touch
Map, items, menus
START
Pause

New 3DS: the C-Stick strafes and turns round, ZL looks, ZR runs.

No soundRun DSP1 once, as in step 3.
Stuck at start-upThe data must be at exactly sdmc:/3ds/sh23ds/, holding bg, chr and the rest.
It crashes or looks wrongOpen an issue with your console model, Luma3DS version and where you were. A photo of the debug page (SELECT twice) helps.Open an issue