Skip to content

boom3 emulates Doom 3. It reads 2 files, none of them required: it starts games without them.

About this profile
Detail Value
Type libretro
Classification Game engine
Source https://github.com/libretro/boom3
Upstream https://github.com/dhewm/dhewm3
Version 1.5.5, stated in neo/framework/Licensee.h
Revision libretro/boom3@efe140ce8fdf, dhewm/dhewm3@455b88e8dff2
Profiled 2026-03-23
Profile YAML, JSON
Cores boom3, boom3_xp
Systems Doom 3
Checks the file by existence
Technical notes

Doom 3 source port based on dhewm3 (GPL Doom 3 engine). The core accepts .pk4 extensions (retro_get_system_info sets valid_extensions = "pk4"). Content is loaded directly from the .pk4 file path - the engine extracts the grandparent directory as fs_basepath (neo/sys/libretro/libretro.cpp:4242,4310-4311 via extract_directory called twice on info->path) and expects the standard Doom 3 directory layout with base/ containing pak000.pk4 through pak008.pk4. BASE_GAMEDIR is "base" (neo/framework/Licensee.h:58), and content in a directory under another name is mounted in its place through fs_gamedirname (neo/sys/libretro/libretro.cpp:3248-3262). One binary serves both games: content in a directory named d3xp, or the doom_game core option, passes "+set fs_game d3xp" (neo/sys/libretro/libretro.cpp:3238-3246,4245-4271) to load the Resurrection of Evil expansion from a d3xp/ subdirectory alongside base/. The filesystem code (neo/framework/FileSystem.cpp:2318) scans for .pk4 files in the game directory and loads them in order, with higher-numbered paks overriding lower ones. The core requires OpenGL (RETRO_ENVIRONMENT_SET_HW_RENDER) and XRGB8888 pixel format. The game data is the commercial Doom 3 release, not engine firmware. No BIOS or system files are needed in the RetroArch system directory. Builds made with HAVE_VR=1 (the Windows x64, Linux x64 and Linux arm64 jobs, .gitlab-ci.yml:87, 101, 109) offer the boom3_vr_enable option. With it on, the core passes "+set fs_vr 1" and the filesystem mounts base_vr/ over base/ and d3xp_vr/ over d3xp/ (neo/sys/libretro/libretro.cpp:3264-3272, neo/framework/FileSystem.cpp:2440-2472). These replacement packs carry the hand and weapon models of Doom3Quest and ship in the core's repository under tools/vr_paks/compiled.

2 files: 0 required, 2 optional.

By kind: 2 game data.

In this collection: 2 in repo and 0 missing.

pak399.pk4 optional in repo game data

VR hand and weapon models (Doom3Quest), mounted over base/

  • Path: base_vr/pak399.pk4
  • Read from: the folder of the loaded content, not the BIOS directory
  • System: Doom 3
  • Read in VR builds with boom3_vr_enable on. base_vr/ sits beside base/, one level above the loaded .pk4. When the file is absent the core shows a notification and the game still starts.

pak399roe.pk4 optional in repo game data

VR replacement pack for Resurrection of Evil, mounted over d3xp/

  • Path: d3xp_vr/pak399roe.pk4
  • Read from: the folder of the loaded content, not the BIOS directory
  • System: Doom 3
  • Mounted in VR builds when fs_game is d3xp. The code reads every .pk4 in d3xp_vr/ and names none, this is the pack the core's repository ships for it.
.