bencollver

10.09.2025, 21:42 |
Diabaig compiled for DOS (Announce) |
This is Diabaig, a roguelike game, built for DOS using OpenWatcom and
pdcurses. It requires a 32-bit CPU and 4 MB memory to run.
Diabaig home page
https://conornally.itch.io/diabaig
Back when tigers used to smoke, the Great Halls of Diabaig were home to a thriving civilisation. However, few records survived the ensuing fires when a dragon moved in. Descend to the depths of Diabaig, carefully navigate the twisting corridors and dangerous creatures and return with a tooth from the dragon's jaws.
Diabaig is a traditional turn-based ASCII roguelike where you are never more than a few mistakes away from death. Choose a starting class, find powerful items, and learn new spells and techniques to face increasingly dangerous adversity. You will discover many floors with rooms filled with unique creatures, magic scrolls, unknown potions and mighty weapons. Use everything at your disposal to survive as long as possible and defeat the dragon, but remember to keep enough spare for the return journey.
https://archive.org/details/diabaig-1.0.0-for-dos
gopher://tilde.pink/1/~bencollver/files/dos386/game/diabaig/
EDIT by rr: fixed 1st link and line breaks in description |
Zyzzle
10.09.2025, 23:58
@ bencollver
|
Diabaig compiled for DOS |
> This is Diabaig, a roguelike game, built for DOS using OpenWatcom and
> pdcurses. It requires a 32-bit CPU and 4 MB memory to run.
Thanks for compiling the game for DOS. It's great to have a new roguelike game for DOS in 2025! I'm enjoying it so far. |
bencollver

30.10.2025, 21:40 (edited by bencollver, 30.10.2025, 21:58)
@ bencollver
|
Diabaig compiled for DOS |
I updated to Diabaig 1.0.1. See download links below.
https://archive.org/details/diabaig-1.0.1-for-dos
gopher://tilde.pink/1/~bencollver/files/dos386/game/diabaig/
A reviewer on the Internet Archive pointed out that while this runs on an 80386, it runs slowly and isn't really playable on anything less than a Pentium.
* * *
This version presented a fun debugging challenge for me:
Diabaig crashed every time i used the "run" command. Debug logs indicated that the crash happened in autopilo.c (autopilot.c) when returning from do_autopilot(). I wanted to use the Watcom debugger, but the crash cannot be reproduced when built with debug symbols. I asked for help on social media, and was told that it sounds like stack corruption from a buffer overflow.
Using debug logs and commenting out sections of code in do_autopilot() i narrowed the crash down to the following line of code:
autopilot.c_inroom=c_inroom(p);
For reference, here's the function prototype:
int c_inroom()
OpenWatcom 1.9 does not give any warnings when compiling the c_inroom(p) invokation in spite of the extra argument. After returning from c_inroom(p), do_autopilot() will continue through the rest of the function and finally crash on the return statement.
The following change will cause OpenWatcom 1.9 to produce an error at build time.
OLD: int c_inroom()
NEW: int c_inroom(void)
The following change fixed the crash:
OLD: autopilot.c_inroom=c_inroom(p);
NEW: autopilot.c_inroom=c_inroom(); |
bencollver

30.10.2025, 21:48
@ bencollver
|
Diabaig compiled for DOS |
For some reason it was taken down from the Internet Archive.
In the meanwhile, here is an alternative https: download link for Diabaig 1.0.1 for DOS.
https://gopher.tildeverse.org/tilde.pink/1/~bencollver/files/dos386/game/diabaig/ |
Zyzzle
31.10.2025, 04:23
@ bencollver
|
Diabaig compiled for DOS |
> For some reason it was taken down from the Internet Archive.
>
> In the meanwhile, here is an alternative https: download link for Diabaig
> 1.0.1 for DOS.
>
> https://gopher.tildeverse.org/tilde.pink/1/~bencollver/files/dos386/game/diabaig/
Will it be possible to have the screen in 80x25 ASCII rather then 80x50. On my systems, the screen is set to 80x50, and the lower 25 lines are always blank / unused, and the upper 25 are scrunched. So, if possible, please release a version which uses the native 80x25 mode. Very much appreciated. |
bencollver

31.10.2025, 13:21
@ Zyzzle
|
Diabaig compiled for DOS |
> > For some reason it was taken down from the Internet Archive.
> >
> > In the meanwhile, here is an alternative https: download link for
> Diabaig
> > 1.0.1 for DOS.
> >
> >
> https://gopher.tildeverse.org/tilde.pink/1/~bencollver/files/dos386/game/diabaig/
> Will it be possible to have the screen in 80x25 ASCII rather then 80x50. On
> my systems, the screen is set to 80x50, and the lower 25 lines are always
> blank / unused, and the upper 25 are scrunched. So, if possible, please
> release a version which uses the native 80x25 mode. Very much appreciated.
From diabaig.c:
#ifdef WINDOWS
resize_term(NROWS+1,NCOLS+1);
#elif DOS
resize_term(80, 43);
#endif
In Windows, this resizes the command prompt to 79x34. It does this because Diabaig is designed for that number of rows and columns.
In DOS, 79x34 mode is not possible. The nearest match is 80x43. This leaves the bottom 9 lines unused.
A possible workaround would be to use PDCurses with HXRT. I tried that and input is wonky enough to make the game unplayable. I have not yet tried the SDL back-end for PDCurses on HXRT.
Do you have any other suggestions? |
jadoxa

Queensland, Australia, 31.10.2025, 15:31
@ bencollver
|
Diabaig compiled for DOS |
> Do you have any other suggestions?
Assuming VGA, set an 11-line font for 36 rows; or switch to 480 scan lines and use the 14-line font for 34 rows. My Text Mode utility can do that (expanding the 8-line font to make 11). (I never really made use of 480 scan lines, didn't really look right on my then monitor.) |
bencollver

01.11.2025, 01:11
@ jadoxa
|
Diabaig compiled for DOS |
> > Do you have any other suggestions?
>
> Assuming VGA, set an 11-line font for 36 rows; or switch to 480 scan lines
> and use the 14-line font for 34 rows.
Thanks for your suggestion.
I posted dos101b.zip with changes to support this.
OLD: diabaig.exe switches to 80x43 mode unconditionally
NEW: diabaig.exe switches to 80x43 mode if current text mode is below 79x34
vga34.bat uses 480 scan lines for 80x34
vga36.bat uses 11-line font for 80x36
On my IBM PC 330 with S3 Vision864 SVGA, vga36.bat works fine but vga34.bat results in 80x28, so diabaig.exe switches to 80x43. :(
In qemu, vga34.bat works fine too. |
Zyzzle
01.11.2025, 09:31
@ bencollver
|
Diabaig compiled for DOS |
> From diabaig.c:
>
> #ifdef WINDOWS
> resize_term(NROWS+1,NCOLS+1);
> #elif DOS
> resize_term(80, 43);
> #endif
>
> In Windows, this resizes the command prompt to 79x34. It does this because
> Diabaig is designed for that number of rows and columns.
>
> In DOS, 79x34 mode is not possible. The nearest match is 80x43. This
> leaves the bottom 9 lines unused.
>
> A possible workaround would be to use PDCurses with HXRT. I tried that and
> input is wonky enough to make the game unplayable. I have not yet tried
> the SDL back-end for PDCurses on HXRT.
>
> Do you have any other suggestions?
Ah, now I see. The systems I'm using switch to 80x50, not 80x43 (limitation of onboard Intel Graphics, I guess). So with vga34 and vga36.bat and a VGA utility it should be possible to fool / modify my VBIOS to add an 80x43 VGA mode.
I must say 79x34 is an odd text mode resolution for a game! But, I love all oldschool Rogue games, and Diabaig is no exception. The DOS port is most welcomed and enjoyable. |
bencollver

02.11.2025, 14:51
@ Zyzzle
|
Diabaig compiled for DOS |
> Ah, now I see. The systems I'm using switch to 80x50, not 80x43 (limitation
> of onboard Intel Graphics, I guess). So with vga34 and vga36.bat and a VGA
> utility it should be possible to fool / modify my VBIOS to add an 80x43 VGA
> mode.
>
> I must say 79x34 is an odd text mode resolution for a game! But, I love all
> oldschool Rogue games, and Diabaig is no exception. The DOS port is most
> welcomed and enjoyable.
I didn't realize there'd be hardware that switched to 80x50 when the program requests 80x43.
Thanks to your feedback, now i can play it at 80x36, which i like better. |