Page 1 of 1

New Doom Port

Posted: Sun May 19, 2019 6:41 am
by ducalex
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

Re: New Doom Port

Posted: Sun May 19, 2019 3:25 pm
by ripper121
Could you add i2s dac support?

Re: New Doom Port

Posted: Tue May 21, 2019 12:33 pm
by mameise
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..

Re: New Doom Port

Posted: Tue May 21, 2019 1:11 pm
by ducalex
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!

Re: New Doom Port

Posted: Tue May 21, 2019 1:23 pm
by ducalex
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.

Re: New Doom Port

Posted: Tue May 21, 2019 3:24 pm
by mad_ady
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!

Re: New Doom Port

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

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

Thank you

Re: New Doom Port

Posted: Tue May 21, 2019 3:39 pm
by ripper121
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

Re: New Doom Port

Posted: Tue May 21, 2019 4:04 pm
by mameise
Retried now and now it is working. Thanks for adding save/load. Great job.

Re: New Doom Port

Posted: Wed May 22, 2019 5:07 am
by ducalex
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?

Re: New Doom Port

Posted: Wed May 22, 2019 5:12 am
by ducalex
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!

Re: New Doom Port

Posted: Wed May 22, 2019 5:19 am
by dg5fdg
Thank you, Gracias, Merci.

Re: New Doom Port

Posted: Wed May 22, 2019 4:16 pm
by mad_ady
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.

Re: New Doom Port

Posted: Mon Jun 03, 2019 4:27 am
by ducalex
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).

Re: New Doom Port

Posted: Thu Jun 06, 2019 1:23 pm
by ducalex
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...

Re: New Doom Port

Posted: Thu Jun 06, 2019 1:48 pm
by mad_ady
Thanks for mod support!

Re: New Doom Port

Posted: Fri Jun 07, 2019 8:52 pm
by mad_ady
@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!

Re: New Doom Port

Posted: Sat Jun 08, 2019 6:15 am
by ducalex
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!

Re: New Doom Port

Posted: Sat Jun 08, 2019 1:59 pm
by mad_ady
Yay! Thanks

Re: New Doom Port

Posted: Sun Aug 11, 2019 8:11 am
by ducalex
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)

Re: New Doom Port

Posted: Sun Sep 15, 2019 8:58 am
by RedX
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?

Re: New Doom Port

Posted: Mon Sep 16, 2019 3:56 am
by ducalex
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

Re: New Doom Port

Posted: Mon Sep 16, 2019 3:59 am
by mad_ady
Sorry, my SD support was broken, and I never touched sound. I can only take credit for the cheats :)

Re: New Doom Port

Posted: Mon Sep 16, 2019 4:41 am
by ducalex
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 :(

Re: New Doom Port

Posted: Mon Sep 16, 2019 7:49 am
by crashoverride
"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. ;)

Re: New Doom Port

Posted: Mon Sep 16, 2019 9:14 am
by RedX
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.

Re: New Doom Port

Posted: Mon Sep 16, 2019 10:00 am
by ducalex
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!

Re: New Doom Port

Posted: Mon Sep 23, 2019 7:34 am
by ducalex
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.