Wyrelade/DW2-PC

PC port of Digimon World 2 (PS1) built from the matching decomp. Needs your own disc image.

C++

10

2,085 commits

updated Oct 12, 2026

See the code

See what people are saying

SourceMessageScoreDate

Using Claude to help bring Digimon World 2 to PC with Multiplayer. (r/ClaudeAI)

# Using Claude to help bring Digimon World 2 to PC, and now build a multiplayer version As the AI scene gets even crazier day by day and the videogame reverse engineering and modification scene is booming. I am here to share my project about it. I've been working on a project to bring **Digimon…

7

Oct 12, 2026

README

Join Discord!
Community for the PC port and DW2 Online.

Digimon World 2 PC Port

Digimon World 2 PC Port

Digimon World 2 (PlayStation, 2000) running natively on Windows and Linux,
built from the game's own decompiled C code.

Download for Windows x64   Download for Linux x64

latest release status: beta license CC0 1.0

Title screen Digital City Digi-Lab
Main Gate Battle Terra Force
Battle Battle Digimon status

Screenshots from the PC port in 16:9 at 1920x1080. F12 saves your own.

Features · Getting started · Controls · Version history · Roadmap · Help wanted · Building · How it works


About

This is not an emulator and not a remake. The Digimon World 2 decompilation turned all 1088 functions of the game into C that rebuilds the retail disc byte for byte. This port compiles that same C for the PC and replaces the PlayStation's libraries and hardware with a PC layer on SDL3.

The game logic is the original code: battles, damage, digivolution, DNA, the domains, the text and the music behave as on the PS1. What changes is how it looks and how you play it: sharper 3D at higher resolutions, a widescreen view, polygons that no longer wobble, gamepads, and saves that are plain files.

[!IMPORTANT] You need your own copy of the game. This repository and its downloads contain no disc image and no game data (graphics, models, sound, text or code from the disc). The port reads its data from a pack file that is built on your PC from your own disc image (USA, SLUS-01193) and checked file by file against a list of hashes. A disc that does not match is rejected.

Features

Graphics

Render scale 1x to 8x3D is drawn at up to 8 times the PS1 resolution (2560x1920 at 8x). Textures and 2D art keep their original pixels, so the look stays the same, only cleaner.
No wobbleThe PS1 snaps every vertex to whole pixels and maps textures without perspective, which makes polygons shake and textures warp. The port keeps precise vertex positions and draws textures with correct perspective.
Widescreen 16:9A wider view of the 3D world, made by widening the camera, not by stretching the picture. Menus, text boxes and the HUD keep their 4:3 layout.
SharpeningOptional contrast adaptive sharpening of the scaled picture (strength 0 to 100, off by default), on the graphics card or on the CPU with the software renderer. Edges get crisper without halos. F8 turns it on and off.
Smooth framesThe game runs at its original 30 frames per second, but the picture is drawn at your monitor's refresh rate (60, 144, 240 Hz): the city, the domains and the battles are blended between two game frames, so walking, turning and battle camera moves look fluid. Game logic, timing and random numbers stay exactly the same; the picture is one game frame behind. Camera cuts stay cuts, menus and text stay as they are. Paused while the speed-up runs. On by default with the GPU renderer, F9 turns it off.
GPU rendererDrawing runs on the graphics card through SDL_GPU (Vulkan). A software renderer stays as a fallback.
Exact frame timingThe game runs at the PS1's 59.94 Hz, paced to the real clock, on its own thread, so dragging or resizing the window does not stall it.
Speed-upF3 unlocks the speed: battles, walking in the domains and menus run 2x to 8x faster, or with no limit (pick it in F1, Game tab; 3x by default). F3 again locks it to normal speed. Music and battle voices play faster with it; movies always play at normal speed.
Window modesWindowed, borderless fullscreen at the desktop resolution, or exclusive fullscreen at a resolution and refresh rate you pick. F11 switches between windowed and fullscreen; a short notice in the top left names the mode. The window's size and place are remembered.
MoviesThe intro, the story scenes and the ending play from your disc's movie files, decoded like the PS1's movie decoder chip at the original 15 frames per second. Start skips them, as on the PS1. Their sound plays with them (streamed CD audio).
Streamed CD audioThe sound the PS1 streams from the disc (XA): the skill voice lines in battle and VS, the DigiLab DNA scene and the movie sound. Decoded like the PS1's CD controller (same ADPCM decode and the same resampling to 44.1 kHz) and mixed into the emulated sound chip at the game's CD volume.
Classic pictureAt 1x with the extras off, the picture is the PS1 picture: automated runs compare it with reference screenshots frame by frame.

Play

Settings windowF1 opens the settings: render scale, 16:9, no wobble, sharpening, smooth frames, renderer, window mode, key and gamepad remap, left stick as D-pad, volume. Changes apply at once and are saved to settings.ini. The title screen shows "Press F1 for settings" in the corner (can be switched off).
GamepadsAny controller SDL3 knows (Xbox, PlayStation, Switch Pro and others), mapped by button position, and it can be plugged in while the game runs. The left stick moves like the D-pad.
KeyboardFull keyboard play out of the box, every key can be changed in F1.
Two playersVS mode with two gamepads, or on one keyboard by switching the port with Tab (--pad2-keys).
Saves as filesMemory cards are files (card1.mcd, card2.mcd) in your user folder. Raw card images from DuckStation, PCSX-Redux or ePSXe load as they are, so a save from an emulator carries over.
ScreenshotsF12 saves the current picture as PNG in a screenshots folder next to the program.
Safe quitEsc asks before quitting, so a stray key press does not lose progress.
UpdatesChecks for a new version at start and can update itself. Off in F1.
64-bit and LinuxNative Windows x64 and Linux x64 builds (32-bit Windows too).

What stays original

Game rules, battle formulas, random numbers, enemy behaviour, text, music and sound effects (the game's own sound driver on an emulated PS1 sound chip). Nothing is rebalanced or rewritten.

Getting started

  1. Download the zip for your system and unpack it anywhere.
  2. Put your disc image in the same folder as dw2.exe. It must be a raw dump with 2352-byte sectors: .bin + .cue, a CloneCD .img, or a raw .iso. A 2048-byte .iso does not work (it has lost the audio and movie sectors); the game tells you if you have one.
  3. Start dw2.exe (Windows) or ./dw2 (Linux). On the first start the game checks your image file by file, writes its data pack dw2.pak next to the exe (a few seconds) and starts. If it finds no image, it asks for one. After that the image is not needed any more.

You can also drop the image onto dw2.exe, or pass it with --disc PATH. The image may also sit in the user data folder (%APPDATA%\DW2-Online\ on Windows, ~/.local/share/DW2-Online/ on Linux); the pack goes there too when the exe's folder is not writable.

The Linux build needs SDL3 3.4 or newer from your distribution and glibc 2.43 or newer (it is built on Ubuntu 26.04). A libSDL3.so.0 next to dw2 is used before the system one. On older systems, build it yourself.

Saves are in %APPDATA%\DW2-Online\saves\ on Windows and ~/.local/share/DW2-Online/saves/ on Linux. To bring a save from an emulator, copy its memory card file there as card1.mcd.

Controls

Default bindings (change them in the F1 settings window):

PS1KeyboardGamepad
D-padArrow keysD-pad, left stick
CrossZSouth button (A on Xbox)
CircleXEast button
SquareAWest button
TriangleSNorth button
L1 / R1Q / WShoulder buttons
L2 / R2E / RTriggers
StartEnterStart
SelectBackspace, Right ShiftBack / Select
KeyDoes
F1Settings window (Esc closes it)
F3Speed-up on / off ("Speed unlocked" / "Speed locked")
F5Render scale 1x .. 8x
F6No wobble on / off
F716:9 on / off
F8Sharpening on / off
F9Smooth frames on / off
F11Windowed / fullscreen
F12Screenshot
EscQuit (asks first)

Command line options (dw2 --help lists all of them):

OptionDoes
--scale Nstart at render scale N (1 to 8)
--widestart in 16:9
--speed-upstart with the speed-up on
--pgxpstart with no wobble on
--sharpen Nsharpening strength 0 to 100 (needs scale 2 or more)
--smoothstart with smooth frames on (also the default)
--renderer gpu|softGPU (default) or software drawing
--disc PATHbuild the pack from this disc image
--pak PATHuse a pack from another place
--save-dir DIRkeep the memory cards in DIR
--pad2-keystwo players on one keyboard (Tab switches the port)
--settings PATHuse another settings file
--fullscreen / --windowedstart in borderless fullscreen / in a window
--window-mode Mstart windowed, borderless or exclusive

Settings

F1 opens the settings window over the running game (mouse, keyboard or gamepad). The game does not see your input while it is open.

  • Display: render scale, 16:9, no wobble, sharpening, smooth frames (the same as F5 / F7 / F6 / F8 / F9, which stay in sync with it; sharpening works on scales 2x and up, smooth frames need the GPU renderer), the title screen hint, renderer (GPU or software, used from the next start), window mode (windowed, borderless fullscreen, exclusive fullscreen; the same as F11), the display to go fullscreen on, and the resolution for exclusive fullscreen.
  • Controls: two keys and one gamepad button per PS1 button. Click a slot and press the key or button; right click clears it; Esc cancels. Esc, Tab and the F keys are reserved. Left stick as D-pad on / off. Reset restores the defaults.
  • Game: the speed-up multiplier for F3 (2x, 3x, 4x, 5x, 6x, 8x or no limit), and the update check.
  • Sound: volume.

Settings are saved in settings.ini in the user data folder (%APPDATA%\DW2-Online\ on Windows, ~/.local/share/DW2-Online/ on Linux) when you change something. It is a plain text file (key = value lines) you can edit by hand; lines the game does not know are kept, and a bad value falls back to its default. Without the file the game starts with the defaults. Command line options such as --scale 4 or --fullscreen win over the file for that run and are not saved. The window's size, place and maximized state are saved when you change them.

Updates

At start the game checks GitHub for a new version. If there is one, you can update now, open the download page, or skip it. Saves and settings stay. Turn it off in F1 > Game or with --no-update-check.

Version history

  • v0.1.9 (2026-10-12): fixes a crash with smooth frames on after a longer play session (new in v0.1.8).
  • v0.1.8 (2026-10-12): the game no longer runs slower with smooth frames on some PCs (worse with the speed-up); smooth frames pause while the speed-up is on.
  • v0.1.7 (2026-10-12): smooth frames: the city, the domains and the battles are drawn at the monitor's refresh rate, blended between game frames (F9, F1; on by default).
  • v0.1.6 (2026-10-12): no stray "Attack" labels in the top left corner of the battle screen during the interrupt prompt (issue #4).
  • v0.1.5 (2026-10-10): healing items and skills heal in battle again (they counted as attacks on PC).
  • v0.1.4 (2026-10-10): the game can update itself.
  • v0.1.3 (2026-10-10): update check at start.
  • v0.1.2 (2026-10-10): fixed a crash in the item server and important items menus (#1).
  • v0.1.1 (2026-10-09): speed-up (F3), program icon, no console window, Discord button.
  • v0.1.0 (2026-10-09): first release.

Roadmap

In the first release (v0.1.0):

  • No setup: put the program next to your disc image (.cue / .bin / .iso / .img) or pick it once; the game checks it, builds its pack and starts.
  • F1 settings window: key and gamepad remap, left stick as D-pad, render scale, 16:9, no wobble, renderer, volume, saved to a settings file.
  • Window modes: windowed, borderless fullscreen, exclusive fullscreen; F11 and F1, saved with the window's size and place.
  • Sharpening filter for the scaled picture (GPU and software), in F1 and on F8.
  • "Press F1 for settings" hint on the title screen.
  • Movies: the intro, the story scenes and the endings, Start skips.
  • Streamed CD audio (XA): battle voice lines, the DigiLab DNA scene, movie sound.
  • 64-bit check: every scene (title, movies, city, Digi-Lab, shops, domains, battles, VS, memory card, ending) runs the same as the 32-bit build.
  • Full playthrough from the start to the ending: see Help wanted.

Done so far: the whole game code compiles and runs (title, city, domains, battles, menus, saves, VS mode), movies, streamed CD audio, render scale, no wobble, 16:9, sharpening, smooth frames, GPU renderer, F1 settings, window modes, 64-bit and Linux builds, speed-up, update check.

Help wanted

The scenes are tested one by one, but nobody has played the whole game from the start to the ending on this port yet. If you do, please tell us how it went, even if everything worked: open an issue with how far you got and anything that looked, sounded or played different from the PlayStation version.

Problems of any size are welcome as issues: crashes, graphics or sound glitches, wrong text, controls. The port is updated as reports come in. Helpful to include:

  • what you did right before it happened, and where in the game (domain and floor, city area, menu)
  • a screenshot (F12, in the screenshots folder next to the program) and your save file (card1.mcd, see Getting started)
  • Windows or Linux, GPU or software renderer, and your F1 settings (scale, 16:9, no wobble)

Building

Windows (any shell):

  • WinLibs MinGW-w64 GCC (x86_64 or i686); set DW2_MINGW to its root
  • SDL3 MinGW development release; set DW2_SDL3 to its root
  • Python 3, then pip install -r requirements.txt (brings Ninja)
python tools/build_native.py --arch x64 --release    # -> build/native64_rel/dw2.exe

Linux: gcc, CMake, Ninja and libsdl3-dev, then:

python3 tools/build_native.py --release              # -> build/linux64_rel/dw2

A few data tables are taken from your disc while building (configs/USA/include_bin.txt), so the build also needs the disc's files extracted to dumps/disc/ with dumpsxiso -pt. Builds without --release add developer tools (an overlay on F2 with timing, tasks, memory, save data and a game data browser).

The matching PS1 build is still in this tree: python3 tools/build_dw2.py rebuilds the retail executable and all 7 stage overlays byte-identical. The decomp repository explains that side.

How it works

src/       the game's C from the decomp (original logic; 64-bit fixes marked DW2_NATIVE)
psyq/      PC versions of the PlayStation libraries the game calls (graphics, sound, CD, pad, card)
backend/   emulated PS1 GPU, sound chip, CD audio decoder and movie decoder, the HD renderer (scale, no wobble, 16:9, SDL_GPU)
host/      SDL3 window, input, audio output, memory card files, the data pack
tools/     build scripts, dw2pack.py (pack builder), decomp tools
doc/       game state map, pack format, notes on the PlayStation library calls
  • The PS1 loaded the game's 7 stage overlays (city, domains, battle, title, memory card, VS battle, debug menu) one at a time into the same memory. Here they are linked into one program, and a scene switch resets an overlay's data the way the original reload did.
  • Game memory stays below 2 GB, so the original 32-bit structures work unchanged in the 64-bit build.
  • The data pack (doc/PACK_FORMAT.md) holds the disc's files as the game reads them. The game builds it from your image on the first start (host/pakbuild.c; tools/dw2pack.py writes the same file), and every file is checked against configs/USA/pack_manifest.txt, which holds hashes only, no game data.

Credits

  • Wyrelade: founder and lead of the project; the Digimon World 2 decompilation and this PC port.
  • Decomp workflow and toolchain derived from the Parasite Eve 2 decomp.
  • DW2 file-format documentation by RmBeastbow.
  • Thanks to ThirstyWraith for the stage overlay and battle notes.
  • SDL3 (zlib license), Dear ImGui (MIT license, host/imgui/LICENSE.txt), miniz (MIT license, host/miniz/LICENSE), Monocypher (CC0, host/monocypher/LICENCE.md).

License

The project code is CC0 1.0. Digimon World 2, its data, its characters and its logo belong to their owners. No game data is in this repository or its downloads; the banner (misc/banner.png) is fan art and uses the game's logo only to name the game.


NYEN logo
Powered by NYEN

Wyrelade/DW2-PC

PC port of Digimon World 2 (PS1) built from the matching decomp. Needs your own disc image.

C++

10

2,085 commits

updated Oct 12, 2026

See the code

See what people are saying

SourceMessageScoreDate

Using Claude to help bring Digimon World 2 to PC with Multiplayer. (r/ClaudeAI)

# Using Claude to help bring Digimon World 2 to PC, and now build a multiplayer version As the AI scene gets even crazier day by day and the videogame reverse engineering and modification scene is booming. I am here to share my project about it. I've been working on a project to bring **Digimon…

7

Oct 12, 2026

README

Join Discord!
Community for the PC port and DW2 Online.

Digimon World 2 PC Port

Digimon World 2 PC Port

Digimon World 2 (PlayStation, 2000) running natively on Windows and Linux,
built from the game's own decompiled C code.

Download for Windows x64   Download for Linux x64

latest release status: beta license CC0 1.0

Title screen Digital City Digi-Lab
Main Gate Battle Terra Force
Battle Battle Digimon status

Screenshots from the PC port in 16:9 at 1920x1080. F12 saves your own.

Features · Getting started · Controls · Version history · Roadmap · Help wanted · Building · How it works


About

This is not an emulator and not a remake. The Digimon World 2 decompilation turned all 1088 functions of the game into C that rebuilds the retail disc byte for byte. This port compiles that same C for the PC and replaces the PlayStation's libraries and hardware with a PC layer on SDL3.

The game logic is the original code: battles, damage, digivolution, DNA, the domains, the text and the music behave as on the PS1. What changes is how it looks and how you play it: sharper 3D at higher resolutions, a widescreen view, polygons that no longer wobble, gamepads, and saves that are plain files.

[!IMPORTANT] You need your own copy of the game. This repository and its downloads contain no disc image and no game data (graphics, models, sound, text or code from the disc). The port reads its data from a pack file that is built on your PC from your own disc image (USA, SLUS-01193) and checked file by file against a list of hashes. A disc that does not match is rejected.

Features

Graphics

Render scale 1x to 8x3D is drawn at up to 8 times the PS1 resolution (2560x1920 at 8x). Textures and 2D art keep their original pixels, so the look stays the same, only cleaner.
No wobbleThe PS1 snaps every vertex to whole pixels and maps textures without perspective, which makes polygons shake and textures warp. The port keeps precise vertex positions and draws textures with correct perspective.
Widescreen 16:9A wider view of the 3D world, made by widening the camera, not by stretching the picture. Menus, text boxes and the HUD keep their 4:3 layout.
SharpeningOptional contrast adaptive sharpening of the scaled picture (strength 0 to 100, off by default), on the graphics card or on the CPU with the software renderer. Edges get crisper without halos. F8 turns it on and off.
Smooth framesThe game runs at its original 30 frames per second, but the picture is drawn at your monitor's refresh rate (60, 144, 240 Hz): the city, the domains and the battles are blended between two game frames, so walking, turning and battle camera moves look fluid. Game logic, timing and random numbers stay exactly the same; the picture is one game frame behind. Camera cuts stay cuts, menus and text stay as they are. Paused while the speed-up runs. On by default with the GPU renderer, F9 turns it off.
GPU rendererDrawing runs on the graphics card through SDL_GPU (Vulkan). A software renderer stays as a fallback.
Exact frame timingThe game runs at the PS1's 59.94 Hz, paced to the real clock, on its own thread, so dragging or resizing the window does not stall it.
Speed-upF3 unlocks the speed: battles, walking in the domains and menus run 2x to 8x faster, or with no limit (pick it in F1, Game tab; 3x by default). F3 again locks it to normal speed. Music and battle voices play faster with it; movies always play at normal speed.
Window modesWindowed, borderless fullscreen at the desktop resolution, or exclusive fullscreen at a resolution and refresh rate you pick. F11 switches between windowed and fullscreen; a short notice in the top left names the mode. The window's size and place are remembered.
MoviesThe intro, the story scenes and the ending play from your disc's movie files, decoded like the PS1's movie decoder chip at the original 15 frames per second. Start skips them, as on the PS1. Their sound plays with them (streamed CD audio).
Streamed CD audioThe sound the PS1 streams from the disc (XA): the skill voice lines in battle and VS, the DigiLab DNA scene and the movie sound. Decoded like the PS1's CD controller (same ADPCM decode and the same resampling to 44.1 kHz) and mixed into the emulated sound chip at the game's CD volume.
Classic pictureAt 1x with the extras off, the picture is the PS1 picture: automated runs compare it with reference screenshots frame by frame.

Play

Settings windowF1 opens the settings: render scale, 16:9, no wobble, sharpening, smooth frames, renderer, window mode, key and gamepad remap, left stick as D-pad, volume. Changes apply at once and are saved to settings.ini. The title screen shows "Press F1 for settings" in the corner (can be switched off).
GamepadsAny controller SDL3 knows (Xbox, PlayStation, Switch Pro and others), mapped by button position, and it can be plugged in while the game runs. The left stick moves like the D-pad.
KeyboardFull keyboard play out of the box, every key can be changed in F1.
Two playersVS mode with two gamepads, or on one keyboard by switching the port with Tab (--pad2-keys).
Saves as filesMemory cards are files (card1.mcd, card2.mcd) in your user folder. Raw card images from DuckStation, PCSX-Redux or ePSXe load as they are, so a save from an emulator carries over.
ScreenshotsF12 saves the current picture as PNG in a screenshots folder next to the program.
Safe quitEsc asks before quitting, so a stray key press does not lose progress.
UpdatesChecks for a new version at start and can update itself. Off in F1.
64-bit and LinuxNative Windows x64 and Linux x64 builds (32-bit Windows too).

What stays original

Game rules, battle formulas, random numbers, enemy behaviour, text, music and sound effects (the game's own sound driver on an emulated PS1 sound chip). Nothing is rebalanced or rewritten.

Getting started

  1. Download the zip for your system and unpack it anywhere.
  2. Put your disc image in the same folder as dw2.exe. It must be a raw dump with 2352-byte sectors: .bin + .cue, a CloneCD .img, or a raw .iso. A 2048-byte .iso does not work (it has lost the audio and movie sectors); the game tells you if you have one.
  3. Start dw2.exe (Windows) or ./dw2 (Linux). On the first start the game checks your image file by file, writes its data pack dw2.pak next to the exe (a few seconds) and starts. If it finds no image, it asks for one. After that the image is not needed any more.

You can also drop the image onto dw2.exe, or pass it with --disc PATH. The image may also sit in the user data folder (%APPDATA%\DW2-Online\ on Windows, ~/.local/share/DW2-Online/ on Linux); the pack goes there too when the exe's folder is not writable.

The Linux build needs SDL3 3.4 or newer from your distribution and glibc 2.43 or newer (it is built on Ubuntu 26.04). A libSDL3.so.0 next to dw2 is used before the system one. On older systems, build it yourself.

Saves are in %APPDATA%\DW2-Online\saves\ on Windows and ~/.local/share/DW2-Online/saves/ on Linux. To bring a save from an emulator, copy its memory card file there as card1.mcd.

Controls

Default bindings (change them in the F1 settings window):

PS1KeyboardGamepad
D-padArrow keysD-pad, left stick
CrossZSouth button (A on Xbox)
CircleXEast button
SquareAWest button
TriangleSNorth button
L1 / R1Q / WShoulder buttons
L2 / R2E / RTriggers
StartEnterStart
SelectBackspace, Right ShiftBack / Select
KeyDoes
F1Settings window (Esc closes it)
F3Speed-up on / off ("Speed unlocked" / "Speed locked")
F5Render scale 1x .. 8x
F6No wobble on / off
F716:9 on / off
F8Sharpening on / off
F9Smooth frames on / off
F11Windowed / fullscreen
F12Screenshot
EscQuit (asks first)

Command line options (dw2 --help lists all of them):

OptionDoes
--scale Nstart at render scale N (1 to 8)
--widestart in 16:9
--speed-upstart with the speed-up on
--pgxpstart with no wobble on
--sharpen Nsharpening strength 0 to 100 (needs scale 2 or more)
--smoothstart with smooth frames on (also the default)
--renderer gpu|softGPU (default) or software drawing
--disc PATHbuild the pack from this disc image
--pak PATHuse a pack from another place
--save-dir DIRkeep the memory cards in DIR
--pad2-keystwo players on one keyboard (Tab switches the port)
--settings PATHuse another settings file
--fullscreen / --windowedstart in borderless fullscreen / in a window
--window-mode Mstart windowed, borderless or exclusive

Settings

F1 opens the settings window over the running game (mouse, keyboard or gamepad). The game does not see your input while it is open.

  • Display: render scale, 16:9, no wobble, sharpening, smooth frames (the same as F5 / F7 / F6 / F8 / F9, which stay in sync with it; sharpening works on scales 2x and up, smooth frames need the GPU renderer), the title screen hint, renderer (GPU or software, used from the next start), window mode (windowed, borderless fullscreen, exclusive fullscreen; the same as F11), the display to go fullscreen on, and the resolution for exclusive fullscreen.
  • Controls: two keys and one gamepad button per PS1 button. Click a slot and press the key or button; right click clears it; Esc cancels. Esc, Tab and the F keys are reserved. Left stick as D-pad on / off. Reset restores the defaults.
  • Game: the speed-up multiplier for F3 (2x, 3x, 4x, 5x, 6x, 8x or no limit), and the update check.
  • Sound: volume.

Settings are saved in settings.ini in the user data folder (%APPDATA%\DW2-Online\ on Windows, ~/.local/share/DW2-Online/ on Linux) when you change something. It is a plain text file (key = value lines) you can edit by hand; lines the game does not know are kept, and a bad value falls back to its default. Without the file the game starts with the defaults. Command line options such as --scale 4 or --fullscreen win over the file for that run and are not saved. The window's size, place and maximized state are saved when you change them.

Updates

At start the game checks GitHub for a new version. If there is one, you can update now, open the download page, or skip it. Saves and settings stay. Turn it off in F1 > Game or with --no-update-check.

Version history

  • v0.1.9 (2026-10-12): fixes a crash with smooth frames on after a longer play session (new in v0.1.8).
  • v0.1.8 (2026-10-12): the game no longer runs slower with smooth frames on some PCs (worse with the speed-up); smooth frames pause while the speed-up is on.
  • v0.1.7 (2026-10-12): smooth frames: the city, the domains and the battles are drawn at the monitor's refresh rate, blended between game frames (F9, F1; on by default).
  • v0.1.6 (2026-10-12): no stray "Attack" labels in the top left corner of the battle screen during the interrupt prompt (issue #4).
  • v0.1.5 (2026-10-10): healing items and skills heal in battle again (they counted as attacks on PC).
  • v0.1.4 (2026-10-10): the game can update itself.
  • v0.1.3 (2026-10-10): update check at start.
  • v0.1.2 (2026-10-10): fixed a crash in the item server and important items menus (#1).
  • v0.1.1 (2026-10-09): speed-up (F3), program icon, no console window, Discord button.
  • v0.1.0 (2026-10-09): first release.

Roadmap

In the first release (v0.1.0):

  • No setup: put the program next to your disc image (.cue / .bin / .iso / .img) or pick it once; the game checks it, builds its pack and starts.
  • F1 settings window: key and gamepad remap, left stick as D-pad, render scale, 16:9, no wobble, renderer, volume, saved to a settings file.
  • Window modes: windowed, borderless fullscreen, exclusive fullscreen; F11 and F1, saved with the window's size and place.
  • Sharpening filter for the scaled picture (GPU and software), in F1 and on F8.
  • "Press F1 for settings" hint on the title screen.
  • Movies: the intro, the story scenes and the endings, Start skips.
  • Streamed CD audio (XA): battle voice lines, the DigiLab DNA scene, movie sound.
  • 64-bit check: every scene (title, movies, city, Digi-Lab, shops, domains, battles, VS, memory card, ending) runs the same as the 32-bit build.
  • Full playthrough from the start to the ending: see Help wanted.

Done so far: the whole game code compiles and runs (title, city, domains, battles, menus, saves, VS mode), movies, streamed CD audio, render scale, no wobble, 16:9, sharpening, smooth frames, GPU renderer, F1 settings, window modes, 64-bit and Linux builds, speed-up, update check.

Help wanted

The scenes are tested one by one, but nobody has played the whole game from the start to the ending on this port yet. If you do, please tell us how it went, even if everything worked: open an issue with how far you got and anything that looked, sounded or played different from the PlayStation version.

Problems of any size are welcome as issues: crashes, graphics or sound glitches, wrong text, controls. The port is updated as reports come in. Helpful to include:

  • what you did right before it happened, and where in the game (domain and floor, city area, menu)
  • a screenshot (F12, in the screenshots folder next to the program) and your save file (card1.mcd, see Getting started)
  • Windows or Linux, GPU or software renderer, and your F1 settings (scale, 16:9, no wobble)

Building

Windows (any shell):

  • WinLibs MinGW-w64 GCC (x86_64 or i686); set DW2_MINGW to its root
  • SDL3 MinGW development release; set DW2_SDL3 to its root
  • Python 3, then pip install -r requirements.txt (brings Ninja)
python tools/build_native.py --arch x64 --release    # -> build/native64_rel/dw2.exe

Linux: gcc, CMake, Ninja and libsdl3-dev, then:

python3 tools/build_native.py --release              # -> build/linux64_rel/dw2

A few data tables are taken from your disc while building (configs/USA/include_bin.txt), so the build also needs the disc's files extracted to dumps/disc/ with dumpsxiso -pt. Builds without --release add developer tools (an overlay on F2 with timing, tasks, memory, save data and a game data browser).

The matching PS1 build is still in this tree: python3 tools/build_dw2.py rebuilds the retail executable and all 7 stage overlays byte-identical. The decomp repository explains that side.

How it works

src/       the game's C from the decomp (original logic; 64-bit fixes marked DW2_NATIVE)
psyq/      PC versions of the PlayStation libraries the game calls (graphics, sound, CD, pad, card)
backend/   emulated PS1 GPU, sound chip, CD audio decoder and movie decoder, the HD renderer (scale, no wobble, 16:9, SDL_GPU)
host/      SDL3 window, input, audio output, memory card files, the data pack
tools/     build scripts, dw2pack.py (pack builder), decomp tools
doc/       game state map, pack format, notes on the PlayStation library calls
  • The PS1 loaded the game's 7 stage overlays (city, domains, battle, title, memory card, VS battle, debug menu) one at a time into the same memory. Here they are linked into one program, and a scene switch resets an overlay's data the way the original reload did.
  • Game memory stays below 2 GB, so the original 32-bit structures work unchanged in the 64-bit build.
  • The data pack (doc/PACK_FORMAT.md) holds the disc's files as the game reads them. The game builds it from your image on the first start (host/pakbuild.c; tools/dw2pack.py writes the same file), and every file is checked against configs/USA/pack_manifest.txt, which holds hashes only, no game data.

Credits

  • Wyrelade: founder and lead of the project; the Digimon World 2 decompilation and this PC port.
  • Decomp workflow and toolchain derived from the Parasite Eve 2 decomp.
  • DW2 file-format documentation by RmBeastbow.
  • Thanks to ThirstyWraith for the stage overlay and battle notes.
  • SDL3 (zlib license), Dear ImGui (MIT license, host/imgui/LICENSE.txt), miniz (MIT license, host/miniz/LICENSE), Monocypher (CC0, host/monocypher/LICENCE.md).

License

The project code is CC0 1.0. Digimon World 2, its data, its characters and its logo belong to their owners. No game data is in this repository or its downloads; the banner (misc/banner.png) is fan art and uses the game's logo only to name the game.


NYEN logo
Powered by NYEN