Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
SilverMiner

Build Boom on DOS

Recommended Posts

Posted (edited)

Hi, guys, I decided to build Boom v2.02 on DOS, I tried searching for tutors, but they all are Win32 at least. Where I do find dev tools and what I have to do?

Sry for bad English.

Share this post


Link to post

I believe Boom used the DJGPP compiler and the Allegro library, but I'm pretty sure that newer versions of both of those have broken their compatiblity with source code that old by now (Allegro definitely has) so you're in for a rocky road even then.  I wouldn't recommend it for beginners if any easier options are acceptable.

 

The best way to learn general DOS programming is probably to buy old books and study from those.  If you really dig you can sometimes find stuff online, but it tends to be scattered and oddly specific rather than generalized.  A basic C tutorial will, however, get you a little mileage since C hasn't changed too terribly much outside of some of the non-standard libraries old compilers like Borland shipped with.  A lot of I/O stuff related to graphics/sound/controls in a game will depend on third party libraries or assembly code, however (the aforementioned Allegro in Boom's case).

Share this post


Link to post

You can probably get a 15 year old version of djgpp and allegro and use those.

Share this post


Link to post
Posted (edited)

DJGPP and Allegro, it's clear, I already had 'em and tried to do smth year ago and gave up misinformated. Now what I have to do, in detail? I need a DOS Box tutorial, I think I had set up DJGPP and included Allegro. Generally, my problem is setting up a swap file for DJGPP, but I still need full tutor. Rather written.

Edited by SilverMiner

Share this post


Link to post

Sorry I don’t know of a detailed tutorial and it’s not something I have attempted myself in nearly 20 years. I would say it’s a pretty advanced and niche task you’ve set yourself and if you aren’t an experienced C programmer I think you might struggle. 

Share this post


Link to post

Why should there be anyone? Nobody uses DOS anymore these days. Even Boom itself had been hopelessly behind when it was made - 3 years after Windows 95 was released.

 

Share this post


Link to post
9 hours ago, Jerry.C said:

Why should there be anyone? Nobody uses DOS anymore these days. Even Boom itself had been hopelessly behind when it was made - 3 years after Windows 95 was released.

 

If Doom isn't dead, and significant number of doomers uses DOS or its emus, there should be somebody who knows and could help me w. The theme of topic is suggesting some help to me to do that. Not to say it's too hard so we won't.

Share this post


Link to post

You are making a false conclusion here.

 

Those who still use DOS emulators to play Doom will use the original executable from id.

These people rarely have the knowledge to set up a compile environment, much less one as obscure as DJGPP.

 

It has been almost 20 years since I last even looked at that thing because there simply was no use for it outside of trying to make some old and mostly obsolete stuff work. In other words this means that I once knew how to set up this compiler but that knowledge simply has been lost over the course of all those years because it never was needed again.

 

Share this post


Link to post

@SilverMiner has a point, he’s asked for help, we’ve explained we can’t but there’s no point in us spamming the thread further 

Share this post


Link to post
Posted (edited)

 Why Boom? You could try compiling MBF 2.04, it's still maintained. The source package includes a modified allegro library so i guess you'd only need the latest DJGPP. And then after configuring it to use the included makefile i think. I used DJGPP back in the day but that was many years ago. You could also ask gerwin and hail_to_the_ryzen could help too.

https://www.vogons.org/viewtopic.php?f=24&t=40857

Share this post


Link to post
36 minutes ago, drfrag said:

 Why Boom? You could try compiling MBF 2.04, it's still maintained. The source package includes a modified allegro library so i guess you'd only need the latest DJGPP. And then after configuring it to use the included makefile i think. I used DJGPP back in the day but that was many years ago. You could also ask gerwin and hail_to_the_ryzen could help too.

https://www.vogons.org/viewtopic.php?f=24&t=40857

That's a great plan. And, if you're still wanting to stick with Boom, use the MBF package and rework the Boom code on top of it - should go pretty quickly.

Share this post


Link to post
Posted (edited)

MBF? I'll try that. Hmm, I thought it'll be easy... (NO)

While guys on VOGONS are not responding, I'm still waiting for a tutor (or similar) HERE.

Any suggestions?

 

Edited by SilverMiner

Share this post


Link to post
21 hours ago, SilverMiner said:

MBF? I'll try that. Hmm, I thought it'll be easy... (NO)

While guys on VOGONS are not responding, I'm still waiting for a tutor (or similar) HERE.

Any suggestions?

 

The forum says that they got it to compile with DJGPP 2014: "It now compiles a reliable exe with DJGPP packages from 2014". Have you downloaded DJGPP and tried to get their source to compile? That's the first step.

Share this post


Link to post
Posted (edited)

I already had that DJGPP and ran  _make.bat in mbfsrc dir, all paths were correct. The error on start was like "No DPMI memory" so the compilation terminated. I had run that CWSDPMI and CWSPARAM, set swap file to 64 MB but I have the error still.

Share this post


Link to post
1 hour ago, SilverMiner said:

I already had that DJGPP and ran  _make.bat in mbfsrc dir, all paths were correct. The error on start was like "No DPMI memory" so the compilation terminated. I had run that CWSDPMI and CWSPARAM, set swap file to 64 MB but I have the error still.

Ah. I wish I knew more about it and could help you more. Somehow, you have to tell DJGPP to build a 32-bit DOS executable, and to include DOS Extender code in the executable. Maybe the DJGPP docs can help, or, maybe you can search for other DJGPP projects that use and include DOS Extenders. Such a project might provide the missing settings you need. As far as I know, you're 99.9% there, and you're missing like 1 setting. The fact that this setting is not in the makefile suggests to me that maybe it's stored elsewhere - perhaps you need something like an environment variable that DJGPP looks for, or a config file that DJGPP automatically looks for.

 

If you're able to figure it out, please post your fix - I'd love to know what it is. Good luck!

Share this post


Link to post
Posted (edited)

I compiled Boom 2.02 (with the only change being the backporting of Crispy Doom's fixing of this bug) here and MBF 2.03 "with fixeshere. I don't remember how I did it exactly, but at least part of my progress has been documented here.

edit: In case you're wondering, I'm pretty sure the bug I had with Boom was that one player was recording a demo, while the other wasn't.

Share this post


Link to post
Posted (edited)

Gerwin suggested to set up these things to DJGPP (to mbf2.04 build)

bnu27b.zip, djdev201.zip, gcc2723b.zip, mak3791b.zip, txi390b.zip.

So I did. And now I have some errors.

Any suggestions?

 

 

Новый точечный рисунок.jpg

Edited by SilverMiner

Share this post


Link to post
Posted (edited)

Well, for what its worth.  DoomLegacy still has a DOS port in its source code.   It is djgpp, and still requires Allegro.  I expect it has the same requirements as Boom, as its port code is from the same era.   I have updated the DOS port code for any changes to DoomLegacy.  However, no one has compiled it for DOS for as long as I know.

There must be at least a few compile bugs and typos in there.

I do not know if it would be easier than trying to compile Boom.

The main part of DoomLegacy is supported and tested code, which is one advantage.  If the compiler is really old, you only have to worry about a few things that it might not understand, as DoomLegacy is basic 'C' code.  That only leaves the DOS port code to fight with, which might be a much smaller battle.

In any case, it would be another similar DOS port, that does BOOM, where you could compare code.

 

Edited by wesleyjohnson

Share this post


Link to post
Posted (edited)

At the DOS time there were not as many choices for the CPU, so I doubt the compiler supports the -mtune switch, and may not support i486.

If your eliminate the -mtune switch, it would probably compile for something like 8086. 

It might be a different switch.  I cannot find anything in my old Borland manuals that specifies a target CPU.

I have forgotten how to select the CPU for those old compilers, but it often was based on which compiler you used.

 

I doubt that the switch -Wno_pointer-sign is supported by an older compiler either, so leave it off.

 

Edit the FLAGS in the make file to eliminate those switches.

 

The last error might be that your obj directory does not exist.

 

 

 

Share this post


Link to post

These errors were because MBF 2.04 source wasn't updated to older compiler, DJGPP97.

When the makefile and _make.bat in mbf2.04  source were updated, I had succesfully compiled MBF 2.04 .

Share this post


Link to post
Posted (edited)

Ha, I hadn't and shall've not.

If I have real DOS PCs, what for?

What could I do with Freedos better than with DOS Box?

Share this post


Link to post

FreeDOS is more stable and probably won't crash as much when doing something unusual like compilation inside DOSBox (compilation can be quite taxing... and DOSBox was never really designed to handle it). Then again, if it's working fine in DOSBox already you probably have little to no reason to seek an alternative. Especially as FreeDOS would likely require you to install a virtual machine host (eg, VirtualBox).

Share this post


Link to post

I was about to suggest that it would be better to compile outside of dosbox to get better performance but I suppose the issue is getting a cross compiler set up to target dos from a modern system that is also happy with the C used by boom, allegro etc

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×