Homebrew WIP dhewm3-nx - a Doom 3 port

  • Thread starter Thread starter fgsfds
  • Start date Start date
  • Views Views 65,101
  • Replies Replies 215
  • Likes Likes 47

fgsfds

Well-Known Member
Member
Joined
Aug 28, 2018
Messages
471
Reaction score
967
Trophies
1
Age
125
XP
4,011
Country
Russia
I ported dhewm3 (a Doom 3 source port) to the Switch.
Right now this is more of a proof of concept kind of thing rather than a fully playable port, as performance is pretty abysmal (20-30 FPS on average with shadows disabled, less with shadows enabled).

Github repo: /fgsfdsfgs/dhewm3
Latest version: 0.1.0 (Sep 30, 2018)
Download link
Test build (06/06/2019, includes RoE binary)
https://github.com/fgsfdsfgs/dhewm3/releases/tag/v0.1.0_nx
2018092419514600-DA63280140B1530CD17755515D814CFE.jpg


2018092419503100-DA63280140B1530CD17755515D814CFE.jpg


2018092321280400-DA63280140B1530CD17755515D814CFE.jpg

Features:
  • hardware accelerated rendering;
  • sound/music through OpenAL-Soft ("EAX4.0" effects are also supported);
  • half-assed analog controls.
To install, unzip dhewm3nx_v010.zip to SD card root, then copy over pak000.pk4 through pak008.pk4 from the base folder of your PC Doom 3 installation to /switch/dhewm3/base/.
Your Doom 3 installation should be patched to v1.3.1. The Steam version is already patched, the files are in Steam/steamapps/common/Doom 3.
If you're using data files from a non-English version of the game and your base folder has additional zpak###.pk4 files in it, also copy those over to /switch/dhewm3/base/.
Doom 3 BFG files are not supported, someone would need to port RBDoom3BFG for that.
For more information read the README and this FAQ.

Some notes:
  • this will only run correctly through NSP hbmenu or if you make a standalone NSP out of it or if you use a game/demo as a donor title on Atmosphere (i.e. as a regular app), if you run it through Album hbmenu (i.e. as an applet), it will run out of memory and crash as soon as you try to load any map;
  • in the main menu you can control the cursor with the Right Analog, triggers act as mouse buttons;
  • you can also use the touchscreen to control the main menu;
  • left analog is a little wonky in game after loading, jiggle it for a second and it'll work;
  • multiplayer is borked, selecting it will crash the game;
  • loading and saving times are pretty long;
  • by default, Video Quality (which is essentially texture detail) is set to Medium and shadows are disabled, but you can tweak any settings (except resolution) to your liking, some of which may require a restart;
  • currently only 720p is supported;
  • sometimes after loading a map your gun viewmodel will disappear, this is fixed by going into Options -> Game Options and toggling Show Gun Model off and back on, I have no idea why this happens at all;
  • if you want massive amounts of "atmospheric" reverb on most in-game sounds, you can turn on "EAX4.0 HD" in Options -> System (not sure if it's even supposed to sound like this);
  • Resurrection of Evil is not currently supported by the release NRO, you can use this separate build that can only run RoE if you want to play it;
  • if the game crashes for no apparent reason on startup, probably with a 2011-0301 error, try disabling any extra sysmodules you have loaded (sys-ftpd, xorplay, etc);
  • if you're using data files from a non-English version of the game, you can change the game language by changing the values for in_kbd and sys_lang in dhewm.cfg from "english" to e.g. "spanish";
  • as usual, if you have exFAT, better quit the game using the "Exit" option in the menu instead of just killing hbmenu.
Credits:
  • dhewg and Daniel Gibson for dhewm3;
  • fincs, Armada651, Subv and probably others for their work on the OpenGL/mesa/libdrm stuff;
  • some nice people in the ReiSwitched Discord and #switchdev for help and testing;
  • id Software for Doom 3.
 

Attachments

Last edited by fgsfds,
Cant wait to try this man, loving all these classic shooters on the switch! Hopefully you can get it running at a solid 30 fps or maybe 60 in the future! Good job!
 
Awesome work man. But this does the same thing as ioquake3 for me.. Just crashes my system (Power off job) no matter what iv tried..
Can anyone confirm this or ioquake3 working on 4.1fw?
 
Now I can play the DooM series on my nintendo Switch. Working on RajNX-Atmosphere 7.5.1, but only if you dont enable LayeredFS, otherwise the app crashes on boot (and that's mean load the payload one more time)
IMG_20181001_015457.jpg
 
Last edited by Risteing,
could we maybe see a half life 1 and 2 port?
Porting Xash3D (basically Half-Life 1) is on my todo list, but it more or less requires a dynamic linker. I have statically linked it for Vita before, but that was not a fun thing to do.
Half-Life 2 is pretty much impossible to port because we have no up to date source code for the Source engine.

Awesome work man. But this does the same thing as ioquake3 for me.. Just crashes my system (Power off job) no matter what iv tried..
Can anyone confirm this or ioquake3 working on 4.1fw?
I don't actually know what could cause this. The "power off" effect you're experiencing might be a GPU crash (assuming you have AutoRCM enabled).
Do the Quake 1 and 2 ports work for you? You could also create an issue on Github for both ioquake3nx and dhewm3nx so others could report there if they have the same problem.
 
Last edited by fgsfds,
  • Like
Reactions: focusonme

Site & Scene News

Popular threads in this forum