Homebrew WIP GZDoom for Switch

fgsfds

Well-Known Member
OP
Member
Joined
Aug 28, 2018
Messages
415
Trophies
0
Age
120
XP
2,395
Country
Russia
Github repo: fgsfdsfgs/gzdoom
Latest version: 8 (GZDoom 4.7.1, 24 Oct 2021)
Download link

2019050716183600-DA63280140B1530CD17755515D814CFE.jpg 2019050716200400-DA63280140B1530CD17755515D814CFE.jpg 2019050716213200-DA63280140B1530CD17755515D814CFE.jpg 2019050716231100-DA63280140B1530CD17755515D814CFE.jpg

Features:
  • most things work, including sound, music, multiplayer and both the GL4 and GLES2 hardware renderers;
  • launcher that lets you pick mods and start network games.
To install, unzip the attached ZIP file into the switch folder on your SD card, then place at least one supported IWAD (eg doom2.wad) into gzdoom/iwads/. For the complete list of what GZDoom supports, see the wiki.
To run, start GZDoom Launcher from HBMenu. You can start GZDoom by itself, but it will default to the last played IWAD (or the one it finds in the folder).

Known issues (as of v8):
  • Startup and loading big files at runtime takes a while.
  • Performance in general is pretty bad, especially with certain mods. This is partially because there's no JIT compilation for the scripts on the Switch.
Some notes:
  • Launcher controls:
    • D-PAD: navigation
    • L/R: change tab
    • A: activate option
    • B: cancel/exit
    • X: reset option
    • PLUS: start game
  • GZDoom (especially some more complex mods) may require more RAM than is available in applet mode, so better use another title instead of the Album for HBMenu override, or use NSP HBMenu;
  • you can technically place the game into any folder, as long as the gzdoom folder is next to gzdoom_launcher.nro;
  • mods are supported (yes, Brutal Doom as well) and should be placed in the gzdoom/pwads folder because the launcher only scans that folder;
  • since 4.7.x GZDoom includes a GLES2 renderer, which is present in this port and might provide better performance in certain conditions at the cost of not being able to render some graphics effects, you can enable it by setting Renderer to OpenGL ES in the Display options (this is the default since v8);
  • the launcher has predefined default profiles for most IWADs, you can add your own profiles by pressing Y on the main tab;
  • multiplayer was only tested between a Switch and a PC, but Switch <=> Switch will probably work as well;
  • you can start a netgame from the launcher; don't forget to change the player number from 1 and read the warning message;
  • the IP that's placed in the address field by default is your Switch's local IP, others can use that to connect to it if they're on the same network;
  • only the player that hosts the game needs to set gameplay settings, however everyone has to pick the same set of custom files as the host;
  • you can exit via the HOME button, but in that case the game won't save its settings;
  • if the game crashes, check for error.log in the gzdoom folder; if that doesn't help, turn on "Write log" in the launcher and run it again, then check gzdoom.log.
Credits:
  • ZDoom + GZDoom teams and other contributors for GZDoom;
  • fincs, Armada651, Subv and probably others for their work on the OpenGL/mesa/libdrm stuff;
  • slash004, nabelo and other people from the ReiSwitched Discord and #switchdev for help and testing;
  • id Software for Doom;
  • mods/maps in screenshots: Alien Vendetta, abort_m, Hideous Destructor.
 
Last edited by fgsfds,

ShadowOne333

QVID PRO QVO
Developer
Joined
Jan 17, 2013
Messages
10,757
Trophies
1
XP
12,684
Country
Mexico
3rd Doom port...
So what?
It's not like they are porting the same engine each time.
First it was ZDoom I believe, then PrBoom with RetroArch, and now this is GZDoom.
If you still don't know the differences between engines, you should do some research.
GZDoom on Switch basically opened up the gates for all of the most well known (and maybe even all) Doom mods to work on the Switch.
 

Purple_Shyguy

Well-Known Member
Member
Joined
Nov 8, 2008
Messages
1,644
Trophies
1
Age
31
Location
Republic of Ireland
XP
2,739
Country
Fgsfds can I buy you a beer, buddy? Ever since all your FPS ports I've got super into the genre and I'm still playing your Quakespasm port and now am into Quake Champions.

I've been waiting for a proper Doom port on switch since the other 3 so far have been super vanilla and use the 35fps internal logic and stuff.

You're hard work is so so appreciated. Thank you so much!!

--------------------- MERGED ---------------------------

3rd Doom port...

KgDoom was abandoned. Doesn't even work on firmwares above 5.x anymore.

PrBoom is vanilla as shit and not the ideal way to play today at all

Chocolate Doom was literally ported in an hour as a fun little aside project and doesn't have very good analogue controls at all.

GZDoom is the daddy of Doom source ports, supports mods AND is the only one the supports Heretic, Hexen and Strife. This isn't just Doom.
 
Last edited by Purple_Shyguy,
D

Deleted User

Guest
KgDoom was abandoned. Doesn't even work on firmwares above 5.x anymore.

PrBoom is vanilla as shit and not the ideal way to play today at all

Chocolate Doom was literally ported in an hour as a fun little aside project and doesn't have very good analogue controls at all.

GZDoom is the daddy of Doom source ports.
still the 3rd or 4th how ever you want
 

9thSage

Well-Known Member
Member
Joined
Aug 8, 2008
Messages
457
Trophies
0
XP
587
Country
United States
I wonder if there are some ways to improve performance I'm overlooking (beyond the resolution scale/screen size). It might work better in docked but in handheld it's a bit rough on the mods I've tried (MetaDoom, Reelism, Golden Souls). Anyone have some tips?

Btw, not complaining...it's pretty awesome that you've done this! I was hoping for GZDoom specifically to get ported eventually.
 

fgsfds

Well-Known Member
OP
Member
Joined
Aug 28, 2018
Messages
415
Trophies
0
Age
120
XP
2,395
Country
Russia
Make sure you're not running in 1080p while in handheld mode. There's probably more settings that you can tweak, but I don't really know which, besides stuff like dynamic lighting.
In theory you can try forcing a lower OpenGL version through the command line (`-glver 2.1` for example) but I don't know if that's gonna have any effect on performance.
 
  • Like
Reactions: 9thSage

9thSage

Well-Known Member
Member
Joined
Aug 8, 2008
Messages
457
Trophies
0
XP
587
Country
United States
Make sure you're not running in 1080p while in handheld mode. There's probably more settings that you can tweak, but I don't really know which, besides stuff like dynamic lighting.
In theory you can try forcing a lower OpenGL version through the command line (`-glver 2.1` for example) but I don't know if that's gonna have any effect on performance.
I don't *think* it was running in 1080p but I'll double check next time I'm messing with it! Thank you!
 

fgsfds

Well-Known Member
OP
Member
Joined
Aug 28, 2018
Messages
415
Trophies
0
Age
120
XP
2,395
Country
Russia
By the way, all resolution options should work, so you can just use the "Pick resolution preset" menu and select 720p or lower and see if it does anything for performance. Just make sure you press "Apply changes (Fullscreen)" and not "Apply changes (Windowed)" after you pick one. Another thing that I forgot to disable is anisotropic filtering, it's under "Display Options" => "Texture Options" and is set to 8x or 16x by default, I think, so you can try disabling that. While you're there, you can also play around with options like "Sort drawlists by texture".
 
Last edited by fgsfds,

ShadowOne333

QVID PRO QVO
Developer
Joined
Jan 17, 2013
Messages
10,757
Trophies
1
XP
12,684
Country
Mexico
Might want to add the "Known bugs" section to the OP too:
fgsfds said:
Known bugs
  • When you exit the game via the Quit option in the menu, something doesn't deinitialize properly and the next homebrew you run will crash, unless you exit and reenter hbmenu.
  • Joystick axis settings might reset after restart.
  • Startup takes a while.
Also, I've seen that many of your Switch ports have gotten a lot of commits recently.
Do any of them handle the joycon analog stick issue which you were having before?
I could only encounter this one which kind of seems related to that:
https://github.com/fgsfdsfgs/nxquake2/commit/ab3a371558261e77aa0be02c7996822ec68c610d
But still doesn't seem to mention anything about the sudden lockup of the analog stick in one direction.

Also, do you have any plans on making an updated release of all of your ports with all of the recent commits?
 
  • Like
Reactions: TeddyBearYoshi

fgsfds

Well-Known Member
OP
Member
Joined
Aug 28, 2018
Messages
415
Trophies
0
Age
120
XP
2,395
Country
Russia
Not all of my ports have that issue, only dhewm3 and Doom64EX do. And no, I still haven't fixed it.
Yes, I do have plans to update all my ports pretty soon, since there's a bunch of things I have to fix related to new libnx. Turned out I was doing a thing wrong, which needs to be fixed.
 
D

Deleted User

Guest
This will be brutal ...
I abandonned my tries to port it cause I'm not familiar with cmake and wanted to avoid headache. So Thanks you very very much for that :)

cheers ᕦ(ò_óˇ)ᕤ
 

fgsfds

Well-Known Member
OP
Member
Joined
Aug 28, 2018
Messages
415
Trophies
0
Age
120
XP
2,395
Country
Russia
I didn't even know there's VR support of some kind in gzdoom, and I don't know what layout Labo VR expects. If someone could show me that, then maybe I could do something with it.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
    Psionic Roshambo @ Psionic Roshambo: Hmm didn't know they made more Dusk Till Dawn movies watched part one on Pluto TV and they have...