New Doom Port

Post Reply
ducalex
Posts: 55
Joined: Sun May 19, 2019 3:29 am
languages_spoken: english, french
Has thanked: 14 times
Been thanked: 37 times
Contact:

New Doom Port

Unread post by ducalex » Sun May 19, 2019 6:41 am

Hello,

I have been working on a Doom port for the Odroid GO based on this port.

New features include:

- Full sound support including music
- Save games
- Doom 2 support (kinda)
- Brightness controls
- Volume controls
- WAD selector on start

It is still very prone to crashing due to memory issues (especially in Doom 2) but it is playable.



Controls:

Code: Select all

A               Fire
B               Strafe
START 	        Action/Open doors
SELECT 	        Change weapon
VOLUME 	        Map
MENU 	        Menu
START+UP 	Brightness up
START+DOWN 	Brightness down
START+LEFT 	Sound down
START+RIGHT 	Sound up
Source code and information: https://github.com/ducalex/doom-ng-odroid-go
Attachments
doom-b74f976-2019-September-22.zip
(Newest)
- Added cheats menu
- Added level selector
- Improved the menu, almost everything works now
- Added support for more than 4 episodes
(2.27 MiB) Downloaded 7 times
doom-5203d798-2019-August-10.zip
- Volume and lcd backlight preferences are now saved
- Music and sfx are now mixed correctly. You can go to the options and change the level of each independently of the master volume!
- Fixed an issue that allowed me to enable -O3 for prboom. (I don't think it made a big difference but oh well.)
(2.27 MiB) Downloaded 60 times
doom-402c6ad5-2019-June-07.zip
(I)Wad selector can scroll.
Bound Y/N keys to A/B for questions like in Nightmare mode
Patched prboom to make more of the menu usable (the yes/no options)
(2.21 MiB) Downloaded 35 times
doom-656d181b-2019-June-05.zip
Added multiple (I)WAD support. Press B to toggle selection of a file, A to select file and start.
(2.22 MiB) Downloaded 18 times
doom-b90f6f4-2019-May-21.zip
Reduced screen tearing
(2.23 MiB) Downloaded 24 times
Last edited by ducalex on Mon Sep 23, 2019 7:23 am, edited 9 times in total.
These users thanked the author ducalex for the post:
mad_ady (Tue May 21, 2019 3:17 pm)

ripper121
Posts: 135
Joined: Mon Jan 28, 2019 7:00 pm
languages_spoken: english
Has thanked: 25 times
Been thanked: 18 times
Contact:

Re: New Doom Port

Unread post by ripper121 » Sun May 19, 2019 3:25 pm

Could you add i2s dac support?

mameise
Posts: 88
Joined: Sat Jul 07, 2018 6:40 am
languages_spoken: english german
ODROIDs: ODROID-GO
Has thanked: 1 time
Been thanked: 0
Contact:

Re: New Doom Port

Unread post by mameise » Tue May 21, 2019 12:33 pm

Tried it but i get prboom.wad not found. When i rename doom1.wad to prboom.wad i get error „iwad“ not found.
Not sure what i could do wrong here... Just 2 files and you already placed them in the correct folders..

ducalex
Posts: 55
Joined: Sun May 19, 2019 3:29 am
languages_spoken: english, french
Has thanked: 14 times
Been thanked: 37 times
Contact:

Re: New Doom Port

Unread post by ducalex » Tue May 21, 2019 1:11 pm

mameise wrote:
Tue May 21, 2019 12:33 pm
Tried it but i get prboom.wad not found. When i rename doom1.wad to prboom.wad i get error „iwad“ not found.
Not sure what i could do wrong here... Just 2 files and you already placed them in the correct folders..
I added prboom.wad to the zip, it was my mistake!

ducalex
Posts: 55
Joined: Sun May 19, 2019 3:29 am
languages_spoken: english, french
Has thanked: 14 times
Been thanked: 37 times
Contact:

Re: New Doom Port

Unread post by ducalex » Tue May 21, 2019 1:23 pm

ripper121 wrote:
Sun May 19, 2019 3:25 pm
Could you add i2s dac support?
Like an external DAC? It's certainly possible, it would be a question of setting the correct pins.

I am still working on audio quality, the audio can certainly be improved even with the built-in audio system.

User avatar
mad_ady
Posts: 6622
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1, H2, N2
Location: Bucharest, Romania
Has thanked: 182 times
Been thanked: 141 times
Contact:

Re: New Doom Port

Unread post by mad_ady » Tue May 21, 2019 3:24 pm

Yay! Congratulations for picking up those efforts! I meant to add at least proper save/load support, but life...
I do have one important feature request though - see if you can find a way to load mods. There should be a wad (mod) and a main wad (doom1/2) as base. I guess mods might work better than doom2 - which crashes on big maps. One way around some memory issues is to play on simpler difficulty (fewer monsters to keep track of).

I'll deffinitely want to try your variant, thanks!

User avatar
dg5fdg
Posts: 6
Joined: Sun Jun 24, 2018 4:32 pm
languages_spoken: german (good), english (not so good) :-)
ODROIDs: ODROID-GO, Odroid-N2
Location: Germany, near Frankfurt/M
Has thanked: 1 time
Been thanked: 0
Contact:

Re: New Doom Port

Unread post by dg5fdg » Tue May 21, 2019 3:26 pm

Hi Alex, thanks for this job ;)

i got one question: how can i change the brightness :?: Which key combination ?

Thank you

ripper121
Posts: 135
Joined: Mon Jan 28, 2019 7:00 pm
languages_spoken: english
Has thanked: 25 times
Been thanked: 18 times
Contact:

Re: New Doom Port

Unread post by ripper121 » Tue May 21, 2019 3:39 pm

ducalex wrote:
Tue May 21, 2019 1:23 pm
ripper121 wrote:
Sun May 19, 2019 3:25 pm
Could you add i2s dac support?
Like an external DAC? It's certainly possible, it would be a question of setting the correct pins.

I am still working on audio quality, the audio can certainly be improved even with the built-in audio system.
You can see the settings in the go-play app and in my mp3 Player.

https://github.com/OtherCrashOverride/g ... id_audio.c

mameise
Posts: 88
Joined: Sat Jul 07, 2018 6:40 am
languages_spoken: english german
ODROIDs: ODROID-GO
Has thanked: 1 time
Been thanked: 0
Contact:

Re: New Doom Port

Unread post by mameise » Tue May 21, 2019 4:04 pm

Retried now and now it is working. Thanks for adding save/load. Great job.

ducalex
Posts: 55
Joined: Sun May 19, 2019 3:29 am
languages_spoken: english, french
Has thanked: 14 times
Been thanked: 37 times
Contact:

Re: New Doom Port

Unread post by ducalex » Wed May 22, 2019 5:07 am

mad_ady wrote:
Tue May 21, 2019 3:24 pm
Yay! Congratulations for picking up those efforts! I meant to add at least proper save/load support, but life...
I do have one important feature request though - see if you can find a way to load mods. There should be a wad (mod) and a main wad (doom1/2) as base. I guess mods might work better than doom2 - which crashes on big maps. One way around some memory issues is to play on simpler difficulty (fewer monsters to keep track of).

I'll deffinitely want to try your variant, thanks!
Thanks for your port, it allowed me to get started very quickly with development!

A lot of the memory issues are caused by memory fragmentation rather than running out of memory, I added some workarounds such as avoiding mallocs and reserving blocks but I guess other than a memory defragmenter there isn't much more that can be done.

Mods should be possible, do you have a small mod to recommended that I could use for testing?
These users thanked the author ducalex for the post:
mad_ady (Wed May 22, 2019 1:00 pm)

ducalex
Posts: 55
Joined: Sun May 19, 2019 3:29 am
languages_spoken: english, french
Has thanked: 14 times
Been thanked: 37 times
Contact:

Re: New Doom Port

Unread post by ducalex » Wed May 22, 2019 5:12 am

dg5fdg wrote:
Tue May 21, 2019 3:26 pm
Hi Alex, thanks for this job ;)

i got one question: how can i change the brightness :?: Which key combination ?

Thank you
Brightness is start+up/down and volume start+left/right. I added the controls to my post. For the extended controls (cheats) check github!
These users thanked the author ducalex for the post (total 2):
dg5fdg (Wed May 22, 2019 5:20 am) • mad_ady (Wed May 22, 2019 1:00 pm)

User avatar
dg5fdg
Posts: 6
Joined: Sun Jun 24, 2018 4:32 pm
languages_spoken: german (good), english (not so good) :-)
ODROIDs: ODROID-GO, Odroid-N2
Location: Germany, near Frankfurt/M
Has thanked: 1 time
Been thanked: 0
Contact:

Re: New Doom Port

Unread post by dg5fdg » Wed May 22, 2019 5:19 am

Thank you, Gracias, Merci.

User avatar
mad_ady
Posts: 6622
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1, H2, N2
Location: Bucharest, Romania
Has thanked: 182 times
Been thanked: 141 times
Contact:

Re: New Doom Port

Unread post by mad_ady » Wed May 22, 2019 4:16 pm

Mods should be possible, do you have a small mod to recommended that I could use for testing?
I haven't found a doom1 mod that works on PRBoom, but this works with doom2 assets: https://www.doomworld.com/forum/topic/9 ... oom-2-map/
Teste on linux:

Code: Select all

prboom-plus -iwad /usr/share/games/doom/Doom2.wad -file /usr/share/games/doom/revpbl.WAD
It should work on the GO port since it's very close to prboom-plus.

ducalex
Posts: 55
Joined: Sun May 19, 2019 3:29 am
languages_spoken: english, french
Has thanked: 14 times
Been thanked: 37 times
Contact:

Re: New Doom Port

Unread post by ducalex » Mon Jun 03, 2019 4:27 am

mad_ady wrote:
Wed May 22, 2019 4:16 pm
Mods should be possible, do you have a small mod to recommended that I could use for testing?
I haven't found a doom1 mod that works on PRBoom, but this works with doom2 assets: https://www.doomworld.com/forum/topic/9 ... oom-2-map/
Teste on linux:

Code: Select all

prboom-plus -iwad /usr/share/games/doom/Doom2.wad -file /usr/share/games/doom/revpbl.WAD
It should work on the GO port since it's very close to prboom-plus.
No luck running your mod, it crashes and I'm not sure why. I have had some limited success running the recently released SIGIL by John Romero but we run into memory issues pretty quickly.

For now I won't put too much time in making specific mods work, but I will update the GUI to allow loading them and give people the option. I'll release an update soon (hopefully).
These users thanked the author ducalex for the post:
mad_ady (Mon Jun 03, 2019 12:51 pm)

ducalex
Posts: 55
Joined: Sun May 19, 2019 3:29 am
languages_spoken: english, french
Has thanked: 14 times
Been thanked: 37 times
Contact:

Re: New Doom Port

Unread post by ducalex » Thu Jun 06, 2019 1:23 pm

I have added multiple wads/mods support.

At the WAD selector screen you can press B to toggle a selection and A to select and start.

If you press A on a mod without selecting an IWAD first, then prboom will use the first IWAD it finds and load the mod(s) on it.

I think that is a reasonable interface but I am open to improvement suggestions!

Note: While testing a few mods I have noticed that prboom has a lot of things hard-coded (all the menus, the number of episodes, the number of levels, the number of enemies, etc.) so any mods that adds episodes will not work. I managed to patch it for specific mods but then normal doom wouldn't work, so I'll have to look into it later...
These users thanked the author ducalex for the post (total 2):
mad_ady (Thu Jun 06, 2019 1:44 pm) • odroid (Thu Jun 06, 2019 2:38 pm)

User avatar
mad_ady
Posts: 6622
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1, H2, N2
Location: Bucharest, Romania
Has thanked: 182 times
Been thanked: 141 times
Contact:

Re: New Doom Port

Unread post by mad_ady » Thu Jun 06, 2019 1:48 pm

Thanks for mod support!

User avatar
mad_ady
Posts: 6622
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1, H2, N2
Location: Bucharest, Romania
Has thanked: 182 times
Been thanked: 141 times
Contact:

Re: New Doom Port

Unread post by mad_ady » Fri Jun 07, 2019 8:52 pm

@ducalex: I just now had time to install your port and was blown away by it. Music make a lot of difference, and volume control too - since I added a headphone jack to my unit but didn't attenuate the signal going into the headphones. Menus look great too!
Only complaint I got is that if you have too many wads the initial list doesn't scroll and the cursor gets off-screen.
Thanks again!

ducalex
Posts: 55
Joined: Sun May 19, 2019 3:29 am
languages_spoken: english, french
Has thanked: 14 times
Been thanked: 37 times
Contact:

Re: New Doom Port

Unread post by ducalex » Sat Jun 08, 2019 6:15 am

mad_ady wrote:
Fri Jun 07, 2019 8:52 pm
Only complaint I got is that if you have too many wads the initial list doesn't scroll and the cursor gets off-screen.
Fair enough. I anticipated the issue but hoped people wouldn't use that many (I)WADs and I opted to be lazy :p. I've just added a new build that supports scrolling and allocates a buffer for 64 files. I have also improved menu handling a bit as well as bound Y/N to A/B so we can finally answer Y to play nightmare mode!

User avatar
mad_ady
Posts: 6622
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1, H2, N2
Location: Bucharest, Romania
Has thanked: 182 times
Been thanked: 141 times
Contact:

Re: New Doom Port

Unread post by mad_ady » Sat Jun 08, 2019 1:59 pm

Yay! Thanks

ducalex
Posts: 55
Joined: Sun May 19, 2019 3:29 am
languages_spoken: english, french
Has thanked: 14 times
Been thanked: 37 times
Contact:

Re: New Doom Port

Unread post by ducalex » Sun Aug 11, 2019 8:11 am

I have released a new version that now saves the brightness/volume levels. I have also reworked the audio mixing, the music no longer fades when there's a sfx playing. You also can now adjust the volume of sfx and music independently of the master volume (options->sound volume).

Let me know if you think that it sounds worse/better/same than before!

(File attached to top post)
These users thanked the author ducalex for the post (total 6):
mad_ady (Sun Aug 11, 2019 11:23 am) • rooted (Sun Aug 11, 2019 12:50 pm) • ripper121 (Sun Aug 11, 2019 5:30 pm) • odroid (Mon Aug 12, 2019 9:21 am) • Nemo1984 (Tue Aug 13, 2019 12:04 pm) • pelle7 (Tue Aug 13, 2019 3:08 pm)

RedX
Posts: 25
Joined: Sun Sep 15, 2019 8:50 am
languages_spoken: english, german
ODROIDs: Go
Location: Hell
Has thanked: 0
Been thanked: 0
Contact:

Re: New Doom Port

Unread post by RedX » Sun Sep 15, 2019 8:58 am

Hey.

First of all: Nice work man. But ive found a little bug. Idk what causes it but I do know that the button presses I performed arent needed so you dont realy need to fix it if you dont want to ;). Menu+Right freezes the Game. But seriously man.. amazing work! How much time did go into this?
The reason I sin is because theres a Stairway to Heaven and a Highway to hell and I sure as hell aint climbing no stairs.

ducalex
Posts: 55
Joined: Sun May 19, 2019 3:29 am
languages_spoken: english, french
Has thanked: 14 times
Been thanked: 37 times
Contact:

Re: New Doom Port

Unread post by ducalex » Mon Sep 16, 2019 3:56 am

RedX wrote:
Sun Sep 15, 2019 8:58 am
Hey.

First of all: Nice work man. But ive found a little bug. Idk what causes it but I do know that the button presses I performed arent needed so you dont realy need to fix it if you dont want to ;). Menu+Right freezes the Game. But seriously man.. amazing work!
I'm unable to replicate the problem. Can you tell me more info? Were you hover a specific menu item? Menu+Right will enter the idbeholdh (200% health) cheat. It is conceivable that the cheat being entered over a specific menu item could freeze the game, but I need to know step by step!
How much time did go into this?
I spent quite a lot of hours learning/experimenting myself, but credits for this version first goes to espressif (initial prboom port to ESP32), othercrashoverride (added support for GO controls/display), mad_ady (SD card support, cheats, and sound effects support).

Thanks

User avatar
mad_ady
Posts: 6622
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1, H2, N2
Location: Bucharest, Romania
Has thanked: 182 times
Been thanked: 141 times
Contact:

Re: New Doom Port

Unread post by mad_ady » Mon Sep 16, 2019 3:59 am

Sorry, my SD support was broken, and I never touched sound. I can only take credit for the cheats :)

ducalex
Posts: 55
Joined: Sun May 19, 2019 3:29 am
languages_spoken: english, french
Has thanked: 14 times
Been thanked: 37 times
Contact:

Re: New Doom Port

Unread post by ducalex » Mon Sep 16, 2019 4:41 am

I'm positive there was no sound or SD Card support in othercrashoverride's version. Was there another contributor I missed? Or a branch perhaps? Or a fork?

Now I feel bad for spreading lies :(

crashoverride
Posts: 4530
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 69 times
Contact:

Re: New Doom Port

Unread post by crashoverride » Mon Sep 16, 2019 7:49 am

"sprite_tm" did the initial port of DOOM to ESP32:
https://github.com/espressif/esp32-doom

I then added ODROID-GO platform support to the code as-is (no sound). Since it was requested by the community, I released this as "unsupported". My primary interest for it was as a test case for the (then still in development) firmware self flasher (odroid-go-firmware).
https://github.com/OtherCrashOverride/doom-odroid-go

@mad_ady then took it and did some modifications (cheats). During this time, @Gadget Workbench produced a version with sound:
https://www.youtube.com/watch?v=y6PP_IBbOTY

I then took that version and added ODROID-GO platform support as a convenience to the community:
https://github.com/OtherCrashOverride/doom-ng-odroid-go

I have lost track of where its gone from there. ;)
These users thanked the author crashoverride for the post:
ducalex (Mon Sep 16, 2019 8:10 am)

RedX
Posts: 25
Joined: Sun Sep 15, 2019 8:50 am
languages_spoken: english, german
ODROIDs: Go
Location: Hell
Has thanked: 0
Been thanked: 0
Contact:

Re: New Doom Port

Unread post by RedX » Mon Sep 16, 2019 9:14 am

ducalex wrote:
Mon Sep 16, 2019 3:56 am
RedX wrote:
Sun Sep 15, 2019 8:58 am
Hey.

First of all: Nice work man. But ive found a little bug. Idk what causes it but I do know that the button presses I performed arent needed so you dont realy need to fix it if you dont want to ;). Menu+Right freezes the Game. But seriously man.. amazing work!
I'm unable to replicate the problem. Can you tell me more info? Were you hover a specific menu item? Menu+Right will enter the idbeholdh (200% health) cheat. It is conceivable that the cheat being entered over a specific menu item could freeze the game, but I need to know step by step!
Im sorry man its my fault you couldnt recreate it. Its not Menu+Right its Volume+Right :roll: . Now the "You dont need the Button combination I pressed" actually makes sense. I feel so dumb right now haha cant even tell the difference between two buttons. But now I checked it three times. I really hope you didnt spend to much time trying to figure out what the hell I did.

Well, lesson learned: Dont write posts when you're tired.
The reason I sin is because theres a Stairway to Heaven and a Highway to hell and I sure as hell aint climbing no stairs.

ducalex
Posts: 55
Joined: Sun May 19, 2019 3:29 am
languages_spoken: english, french
Has thanked: 14 times
Been thanked: 37 times
Contact:

Re: New Doom Port

Unread post by ducalex » Mon Sep 16, 2019 10:00 am

RedX wrote:
Mon Sep 16, 2019 9:14 am
Im sorry man its my fault you couldnt recreate it. Its not Menu+Right its Volume+Right :roll: .
No problem! In either case it is still an unacceptable bug, the game shouldn't freeze. I was able to reproduce and I'll look into it when I have some free time.

Thanks!

ducalex
Posts: 55
Joined: Sun May 19, 2019 3:29 am
languages_spoken: english, french
Has thanked: 14 times
Been thanked: 37 times
Contact:

Re: New Doom Port

Unread post by ducalex » Mon Sep 23, 2019 7:34 am

A new release is available!

The changes are:
- Added cheats menu (Options -> Cheats) to replace the cheats key combo
- Added level selector (Options -> Level Select)
- Improved the menu, almost everything works now
- Added support for more than 4 episodes

Notes:
- I know that the new menu entries look silly with the small font. It might be possible to use the larger font (if it is a font) but I did not find how yet.
- While the menu works a lot better, the settings are still not saved :(
- The level selector is limited to 9 so you can't warp to level 10-32 in Doom 2. Doom 2 isn't very playable anyway so I might not fix that.
These users thanked the author ducalex for the post:
mad_ady (Mon Sep 23, 2019 2:53 pm)

Post Reply

Return to “Projects”

Who is online

Users browsing this forum: No registered users and 1 guest