A WebAssembly-powered port of Chocolate Doom packaged as a Samsung Tizen TV application.
This project uses Chocolate Doom compiled to WebAssembly via Emscripten and wraps it into a Tizen widget (.wgt) that runs directly on Samsung Smart TVs.
- Runs entirely on the TV (no streaming required)
- Based on Chocolate Doom (faithful to the original)
- Includes Doom Shareware (doom1.wad) by default
- Supports Samsung TV remote control mapping
- Optimized for Samsung Tizen TV devices
- Simple installation using the Samsung Jellyfin Installer
The easiest way to install the generated .wgt file on your Samsung TV is by using:
https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer
Although designed for Jellyfin, the installer supports any Tizen widget and provides a streamlined installation workflow.
Steps:
- Download and launch the Samsung Jellyfin Installer
- Enable Developer Mode on your TV and connect it to the installer
- Select the generated
Doom.wgtfile - Install it onto the TV
- Launch Doom from the TV's app menu
- Docker
- Git
Run the build script to compile and extract the .wgt file:
Windows:
build.batLinux/Mac:
./build.shThis will:
- Build the Docker image with Chocolate Doom compiled to WebAssembly
- Package it as a Tizen widget
- Extract
Doom.wgtto the current directory
If you prefer to build manually:
# Build the Docker image
docker build -t doom-tizen .
# Create and start a temporary container
docker create --name doom-tmp doom-tizen
docker start doom-tmp
# Extract the .wgt file
docker cp doom-tmp:/home/doom/Doom.wgt .
# Clean up
docker stop doom-tmp
docker rm doom-tmpBy default, this build includes the Doom Shareware (doom1.wad).
To play the full version:
- Replace
wasm/doom1.wadwith your registered copy of Doom - Run the build script again:
build.bat # or ./build.sh - Install the new
Doom.wgtfile on your TV
Note: You must own a legitimate copy of Doom to use the full game data.
| Button | Action |
|---|---|
| Arrow Keys | Move forward/back, turn left/right |
| OK | Confirm in menus |
| RETURN | Open ESC menu |
| CHANNEL UP | Fire weapon |
| CHANNEL DOWN | Confirm quit (Y) |
| Red | Weapon 1 |
| Green | Weapon 2 |
| Yellow | Weapon 3 |
| Blue | Weapon 4 |
| Play | Show map |
| Rewind | Strafe left |
| Fast Forward | Strafe right |
doom-tizen/
├── chocolate-doom/ # Chocolate Doom as Git submodule
├── wasm/ # WebAssembly build output
│ ├── doom1.wad # Doom Shareware WAD
│ ├── default.cfg # Doom configuration
│ ├── index.html # Game launcher
│ └── input.js # Remote control handler
├── Dockerfile # Build configuration
└── build.bat/sh # Build scripts
- Doom © id Software
- Chocolate Doom - https://github.com/chocolate-doom/chocolate-doom
- Emscripten Support - This project is made possible by the excellent work of jbaicoianu (James Baicoianu) who added Emscripten build target support to Chocolate Doom:
PR #1717 - Emscripten build target support - Tizen Installer - https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer
- Emscripten - https://emscripten.org/
This project respects the licenses of all included software:
- Chocolate Doom is licensed under GPL v2
- Doom Shareware is freely redistributable
- Original Doom game data requires a legitimate copy