Page 1 of 1

Doom Dreamcast-talk

Posted: Sat Feb 17, 2018 12:35 pm
by BananaXX
Howdy all. With recent discussion on how poorly the online portion of Chilly Willy's DoomDC is, I was wondering if there would be any interest in a community effort to bring a modern source port of Doom to the Dreamcast with functioning online compatibility. I've been researching in my spare time the feasibility of such a project and have come to the following conclusions:

  • Using a source port as close to the original as possible may be beneficial since they dont use GL rendering. I'm thinking Chocolate / Crispy Doom is a good choice (versions prior to SDL 2.0)
  • SDL on the Dreamcast is less than stellar; this means removing almost all SDL dependencies (input, sound, blitting)
  • In 2014 BlueCrab reworked modem support in KOS; hopefully with this we can use the client / server multiplayer of modern source ports
  • DreamPi was not around when Chilly completed his last version of DoomDC; hopefully we can utilize it to make multiplayer connectivity easier
  • Distributing a .cdi with FreeDM.wad would facilitate easier and less stressful online play for users as everyone would have the same .wad

I have no idea if my conclusions and assumptions are correct as I've never ported a game or done Dreamcast development before, so if anyone would like to shed some light on any false assumptions that would be great. I'm not expecting anyone to help port but if anyone has some advice or information to share in helping create this, it would be much appreciated.

In the meantime I'll keep trucking along on this, slowly but surely.

Re: Doom Dreamcast-talk

Posted: Tue Feb 20, 2018 9:24 pm
by dave_van_damn
Yesssss! Sounds fantastic. I’ve been wanting to play Doom online on DC a for ages but never managed to get it working. Great project.

Re: Doom Dreamcast-talk

Posted: Wed Feb 21, 2018 12:06 am
by Nz17
Why would you want to avoid SDL and OpenGL on Dreamcast? What is it about the DC's SDL port/performance that is unsatisfactory?

Re: Doom Dreamcast-talk

Posted: Wed Feb 21, 2018 7:34 am
by BananaXX
These posts are from BlueCrab on several different occasions.
BlueCrab wrote:SDL is a layer on top of KOS, so it will always use more resources than just using KOS directly to do an otherwise identical program (in functionality). The version of SDL included with KOS in its kos-ports tree is known to leak memory quite badly, and pretty much every other port of SDL to the Dreamcast (that I know of) has problems.

Speed wise, SDL does everything by drawing to the framebuffer. That means, in practical terms, that you're using the CPU to do what the GPU can do for you. Also, the framebuffer itself is a lot slower to access via the CPU than main ram (especially if you're using a cached area to access it), so that can become a concern too.

Simply put, if you're developing something specifically for the Dreamcast, I wouldn't recommend using SDL. If you're developing something for both a PC and Dreamcast, I'd recommend making some sort of abstraction library yourself and avoiding SDL on the Dreamcast. I've done similar things in the past when developing cross-platform stuff.

BlueCrab wrote:Chui's SDL will not work, as it is using function calls that have been deprecated (and removed) from KOS. That is to say, it is old and very out of date. Without a bunch of updates to the source code, it's not going to work.

There is a version of SDL included in kos-ports that is much more up-to-date.

However, it is worth noting that SDL on the Dreamcast is basically junk. It is slow, leaks memory, and just generally does not work the way that one might expect. I would not recommend using it for anything, unless you really just want a super-quick port of something that already uses SDL (as a stepping stone to porting it properly without SDL).

SDL 1.x is designed as a simple framebuffer blitting system, which does not mesh well with the Dreamcast's hardware. SDL 2.x basically requires video hardware functionality that is much newer than what the Dreamcast provides (really, it's not SDL itself, but rather the stuff using it), and thus would be a pain to use even if you did have a port of the library itself.

Lack of support and performance are the main reasons I don't think using SDL is smart. Plus, to me, I'd much rather do something in KOS if possible rather than depend on yet another library; especially for something as relatively simple as control and blitting (since Doom has a software renderer).

As for avoiding OpenGL... I don't know anything about OpenGL is the main reason :). And I find the old software rendered look of Doom to be more pleasing. If getting a truer-to-form source port like Chocolate Doom or Crispy Doom on the Dreamcast works, I'll definitely look into getting an OpenGL source port like GZDoom working as well.

Re: Doom Dreamcast-talk

Posted: Wed Feb 21, 2018 3:58 pm
by Nz17
Well I'm cheering for ya!

Re: Doom Dreamcast-talk

Posted: Thu Feb 22, 2018 2:28 pm
by mrneo240
good luck!

Re: Doom Dreamcast-talk

Posted: Thu Feb 22, 2018 10:07 pm
by Bob Dobbs
Love to play this one.

Re: Doom Dreamcast-talk

Posted: Sun Feb 25, 2018 7:12 pm
by dave_van_damn
As of now, which version of Doom is considered to be the best? I tried Chilly Willy's Doom but had problems with it,

Re: Doom Dreamcast-talk

Posted: Sun Feb 25, 2018 7:43 pm
by BananaXX
I'd say best is subjective, but Chilly's is the most recent release that I know of. I believe that last version came out in 2012 from Chilly.

Re: Doom Dreamcast-talk

Posted: Mon Feb 26, 2018 11:32 am
by lerabot
Both Kazade and I are working with OpenGL on DC and it works well in some aspect. I'm no OpenGL guru, but PHENOM's re-work of the library can be used fairely well. I mostly do 2D stuff, but Kazade is doing 3D stuff with his simulant engine.

Good luck with your project.