WIP dhewm3-nx - a Doom 3 port

Discussion in 'Switch - Emulation, Homebrew & Software Projects' started by fgsfds, Oct 1, 2018.

  1. fgsfds
    OP

    fgsfds GBAtemp Regular

    Member
    4
    Aug 28, 2018
    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

    Warning: Spoilers inside!

    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 (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;
    • it'll probably also run correctly via HBL 2.0.0 on Atmosphere, assuming it's properly configured, but I haven't tested that;
    • 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.
     

    Attached Files:

    Last edited by fgsfds, Oct 18, 2018
  2. Draxzelex

    Draxzelex GBAtemp Guru

    Member
    16
    Aug 6, 2017
    United States
    New York City
    The man, the myth, the legend, fgsfds
     
    scionae, NoNAND, DarkFlare69 and 6 others like this.
  3. onofrix

    onofrix Member

    Newcomer
    2
    Jun 29, 2015
    Great, man! Thanks a lot!
     
  4. phreaksho

    phreaksho Advanced Member

    Newcomer
    4
    Oct 27, 2007
    United States
    Post falls, Idaho
    Awesome! !
     
  5. jakkal

    jakkal GBAtemp Addict

    Member
    11
    Apr 27, 2018
    United States
    Wow nice
     
  6. Brunz514

    Brunz514 Member

    Newcomer
    2
    Sep 4, 2018
    Canada
    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!
     
  7. Dutt

    Dutt Member

    Newcomer
    2
    Jun 15, 2018
    Australia
    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?
     
  8. Risteing

    Risteing Newbie

    Newcomer
    1
    Sep 18, 2018
    Argentina
    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)
    Picture
     
    Last edited by Risteing, Oct 1, 2018
  9. 2Siralv

    2Siralv Member

    Newcomer
    2
    May 12, 2018
    Canada
    could we maybe see a half life 1 and 2 port?
     
    Switcyswachty likes this.
  10. TimeDevouncer

    TimeDevouncer Member

    Newcomer
    2
    Jun 7, 2018
    Spain
    You're fuck€%g awesome!

    Thanks!!!:bow::shy::grog:
     
  11. fgsfds
    OP

    fgsfds GBAtemp Regular

    Member
    4
    Aug 28, 2018
    Russia
    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.

    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, Oct 1, 2018
    focusonme likes this.
  12. tpax

    tpax GBAtemp Regular

    Member
    4
    Nov 16, 2014
    Gambia, The
    Wow, that is kind of impressive. Will give it a try as soon as I'm home.
     
  13. SG911

    SG911 GBAtemp Regular

    Member
    3
    Dec 20, 2017
    United States
    Bronx, NY
    This sounds interesting! Sadly, i don't own doom so i can't try this but nice job.
     
  14. Switchtime

    Switchtime Member

    Newcomer
    2
    Jun 25, 2018
    Denmark
    Here was just recently a thread where someone asked for a Doom 3 port and everyone laughed at him.
     
    Deathscreton, Voxel and focusonme like this.
  15. Kallus

    Kallus Advanced Member

    Newcomer
    2
    Jun 5, 2017
    United States
    Well, that's GBAtemp for ya.
     
    Deathscreton likes this.
  16. sj33

    sj33 GBAtemp Psycho!

    Member
    11
    Oct 22, 2013
    Japan
    This is insane, amazing work!
     
  17. The0919

    The0919 GBAtemp Regular

    Member
    3
    Oct 29, 2017
    United States
    Behind you
    Dude, you are insane!
     
  18. Hodge92

    Hodge92 Member

    Newcomer
    3
    Oct 8, 2013
    United Kingdom
    Awesome stuff!
     
  19. focusonme

    focusonme GBAtemp Regular

    Member
    3
    Jun 30, 2016
    United States
    Amazing!!!! Thank you for your effort
     
  20. Notex

    Notex Member

    Newcomer
    3
    Mar 21, 2017
    Australia
    Damn, just causes my switch to display an error.
    2011-0301