Pure DOS rig people, want to test this thing I wrote?

Announcements, advice, random banter, unrelated discussion, et cetera.

Pure DOS rig people, want to test this thing I wrote?

Postby keenmaster486 » 2018-3-06 @ 07:11

EDIT: I should have done this in the first place but here's a self-extracting archive that will fit on a floppy disk, for y'all's convenience:
download/file.php?id=45182


I've made another game engine. Whoop de do.

I'd love it if those of you who like testing things on your machines would feel inclined to load it up! It's intended to run in a pure DOS environment. Probably will not run on Windows 98 due to how it messes with the DOS timer.

I'm currently away from all of my DOS machines so I have no way of testing this code other than emulators.

System requirements (currently):
-386 or better (the FB compiler produces 32-bit protected mode 386 code)
-VGA card
-Adlib / Sound Blaster
-8 MB of RAM
-How much conventional memory? I have no idea. This is why I need testers!

The goal is to make it run on a 386. It's written in FreeBasic, and I might have it just as optimized as it's going to get before moving to assembly code. I have no idea what it's going to do on a real machine. Currently it runs fine in 86Box (with a 486DX/33) and DOSBox.

In 86Box I am running MS-DOS 5.0 with a bare-bones HIMEM only setup and no extra drivers/TSRs, etc. I don't know how much conventional memory it really wants, but I do know it wants 8 MB of XMS/EMS. Memory usage is not of great concern right now; I'm currently focused on speed.

I should mention that FB code generally is very picky about DOS memory management. Sometimes it will not run at all no matter what you do, other times you have to disable EMM386, etc. But it needs to be tested in a "normal" DOS environment first before stripping things away to make it work. I'm interested in knowing what, if anything, needs to be done to get it to run.

Interestingly, in 86Box it chokes badly on a plain old Pentium (system error says "invalid opcode"), while it runs fine on a 386, 486, and MMX. I'm not sure why.

Here's the download link to it:

https://drive.google.com/open?id=1qgt-K ... A0k5a8kO03

Run ENGINE.EXE and select Level 1. The other levels will work but are very untested and use things that haven't been implemented yet.

In the IMF folder there's a program I wrote called DROPLAY. It will play DRO v1 and IMF type 0 and 1 files. You could mess around with that as well to test how well it runs on slower machines.

TED.EXE is a level editor. The key commands for it are in the DOCS folder.

Please also note that the engine will take a great deal of time to load.... the graphics loading code is very quick and dirty and due for a change.


EDIT: Oh, forgot to mention one very important thing:

DEBUG CODES:

F10 + D ---- pulls up debug information at top of screen. X and Y coordinates & velocity & acceleration of player, plus current maximum possible framerate at the upper right. It would be useful to get this framerate number, or at least the range it moves around in on particular machines.

F10 + J ---- enable / disable jump cheat (activated by up key)
Last edited by keenmaster486 on 2018-3-13 @ 18:48, edited 1 time in total.
I flermmed the plootash just like you asked.
Very silly indeed: https://audaxeundum.wordpress.com
User avatar
keenmaster486
Oldbie
 
Posts: 1146
Joined: 2016-2-16 @ 02:04
Location: Atroxus

Re: Pure DOS rig people, want to test this thing I wrote?

Postby Falcosoft » 2018-3-06 @ 18:32

Hi,
System requirements (currently):
-386 or better (the FB compiler produces 32-bit protected mode 386 code)

It seems the FB compiler produces code that also requires an FPU. I could not test it on my 25 MHz 486SX since engine.exe quits with error: 'Coprocessor not available at eip=0002b405'.
On the other hand it runs great with sound on MS-DOS 6.22 and Win98SE with Athlon XP 2200 + Abit KT7-A + SBLive! (JEMM386 and SB16 emulation loaded under DOS). I don't think it's relevant but the max FPS range is 64-512 in debug mode.
User avatar
Falcosoft
Oldbie
 
Posts: 733
Joined: 2016-5-21 @ 13:46
Location: Pécs, Hungary

Re: Pure DOS rig people, want to test this thing I wrote?

Postby Azarien » 2018-3-07 @ 11:01

keenmaster486 wrote:-8 MB of RAM


This seems quite high for a 386 machine, at least for a "period-correct" one.
Azarien
Oldbie
 
Posts: 581
Joined: 2015-5-14 @ 07:14

Re: Pure DOS rig people, want to test this thing I wrote?

Postby sf78 » 2018-3-07 @ 14:54

Exactly, most I've seen (back in the day) had 2 to 4 Mb of RAM. Later 486 and early Pentium's usually sold with 8 Mb.
sf78
Oldbie
 
Posts: 517
Joined: 2014-10-16 @ 15:05
Location: Finland

Re: Pure DOS rig people, want to test this thing I wrote?

Postby leileilol » 2018-3-07 @ 16:23

Seconded. Even the fancier 387 OEM systems came with 4mb at most.
Voodoo2s aren't 100mhz stock
Geforce256 isn't released as a beta on New Years '99 under the Quadro brand
DOS gaming isn't a bilinear 320x200 16:10
DOS PCs aren't better than the Macintosh
DOSBox is not for running Windows 9x
SGL != Glide
User avatar
leileilol
l33t++
 
Posts: 9460
Joined: 2006-12-16 @ 18:03

Re: Pure DOS rig people, want to test this thing I wrote?

Postby keenmaster486 » 2018-3-07 @ 17:33

@Falcosoft - good info! I forgot about the FPU thing. The engine uses mostly integer math so it might be worth trying to disable that. Awesome that it works on the other machine.

About the memory usage, of course 8 MB is kind of ridiculous for a 386 game. I'm going to focus on reducing memory usage later; right now I'm focused on speed and features. I can compile it with temporarily reduced memory usage though, at the expense of a bunch of internal sprites that aren't used.
I flermmed the plootash just like you asked.
Very silly indeed: https://audaxeundum.wordpress.com
User avatar
keenmaster486
Oldbie
 
Posts: 1146
Joined: 2016-2-16 @ 02:04
Location: Atroxus

Re: Pure DOS rig people, want to test this thing I wrote?

Postby Scali » 2018-3-07 @ 17:35

keenmaster486 wrote:@Falcosoft - good info! I forgot about the FPU thing. The engine uses mostly integer math so it might be worth trying to disable that. Awesome that it works on the other machine.


Is there an option to compile with FPU emulation?
Scali
l33t
 
Posts: 3629
Joined: 2014-12-13 @ 14:24

Re: Pure DOS rig people, want to test this thing I wrote?

Postby keenmaster486 » 2018-3-07 @ 18:22

Scali wrote:Is there an option to compile with FPU emulation?

There is an FPU emulator somewhere which is reported to work; I think maybe it comes with DJGPP? In any case there is no flag on FBC to disable FPU code.

As for memory usage, I stripped down the graphics loading code and produced the following executable:
ENGINE.EXE
(232 KiB) Downloaded 6 times


This one only uses 3 MB of memory, so a 386 with FPU and 4 MB should be good to go!
I flermmed the plootash just like you asked.
Very silly indeed: https://audaxeundum.wordpress.com
User avatar
keenmaster486
Oldbie
 
Posts: 1146
Joined: 2016-2-16 @ 02:04
Location: Atroxus

Re: Pure DOS rig people, want to test this thing I wrote?

Postby Scali » 2018-3-07 @ 18:27

keenmaster486 wrote:
Scali wrote:Is there an option to compile with FPU emulation?

There is an FPU emulator somewhere which is reported to work; I think maybe it comes with DJGPP? In any case there is no flag on FBC to disable FPU code.


Well, you won't have to disable FPU code... There are ways to generate code that can call emulation routines when there is no FPU installed, or run on the FPU directly.

But perhaps your compiler does not support that.
Scali
l33t
 
Posts: 3629
Joined: 2014-12-13 @ 14:24

Re: Pure DOS rig people, want to test this thing I wrote?

Postby keropi » 2018-3-07 @ 21:14

That FPU requirement is a block for me, I can't test it on my 386DX system (my next one is a p233mmx )
User avatar
keropi
l33t++
 
Posts: 6655
Joined: 2003-9-08 @ 06:45
Location: Greece

Re: Pure DOS rig people, want to test this thing I wrote?

Postby badmojo » 2018-3-07 @ 21:55

keropi wrote:That FPU requirement is a block for me, I can't test it on my 386DX system (my next one is a p233mmx )


What?! Where is your 486 young man?
If it's broke, then fix it!
User avatar
badmojo
l33t
 
Posts: 2985
Joined: 2011-10-11 @ 04:14
Location: Australia

Re: Pure DOS rig people, want to test this thing I wrote?

Postby keropi » 2018-3-07 @ 21:56

in pieces... can't decide what to build tbh I just bought a 4DPS mobo and I think I'll work with that - maybe LOL
User avatar
keropi
l33t++
 
Posts: 6655
Joined: 2003-9-08 @ 06:45
Location: Greece

Re: Pure DOS rig people, want to test this thing I wrote?

Postby keenmaster486 » 2018-3-07 @ 22:04

Haha, I'd love a test on a 233MMX anyway...

Totally untested non-FPU-dependent executable coming right up!

ENGINE.EXE
(269 KiB) Downloaded 9 times
I flermmed the plootash just like you asked.
Very silly indeed: https://audaxeundum.wordpress.com
User avatar
keenmaster486
Oldbie
 
Posts: 1146
Joined: 2016-2-16 @ 02:04
Location: Atroxus

Re: Pure DOS rig people, want to test this thing I wrote?

Postby keenmaster486 » 2018-3-07 @ 23:07

Updatey updatey, I tested the above executable in 86Box with a 386SX/33 CPU, and lo and behold it works! Not a perfect indicator of whether it would work in the real world though.

Interestingly, I had to disable HIMEM in CONFIG.SYS for it to work; otherwise it returned a page fault. Not sure why this worked, or even HOW it worked given that the thing requires extended memory. Oh well I guess...
I flermmed the plootash just like you asked.
Very silly indeed: https://audaxeundum.wordpress.com
User avatar
keenmaster486
Oldbie
 
Posts: 1146
Joined: 2016-2-16 @ 02:04
Location: Atroxus

Re: Pure DOS rig people, want to test this thing I wrote?

Postby gdjacobs » 2018-3-08 @ 00:29

Azarien wrote:
keenmaster486 wrote:-8 MB of RAM


This seems quite high for a 386 machine, at least for a "period-correct" one.


I remember a guy selling his OS/2 2.1 rig way back then with 20mb on board. That amount of RAM would have been worth $1k at the time.

I always thought part of the reason to partake in this hobby is to mess around with hardware we couldn't back in the day. Who cares if it wasn't common, if the system can run with 20mb or 32mb of RAM, why not load it up?
User avatar
gdjacobs
l33t++
 
Posts: 5688
Joined: 2015-11-03 @ 05:51
Location: The Great White North

Re: Pure DOS rig people, want to test this thing I wrote?

Postby Plasma » 2018-3-08 @ 03:38

keenmaster486 wrote:Updatey updatey, I tested the above executable in 86Box with a 386SX/33 CPU, and lo and behold it works! Not a perfect indicator of whether it would work in the real world though.

Interestingly, I had to disable HIMEM in CONFIG.SYS for it to work; otherwise it returned a page fault. Not sure why this worked, or even HOW it worked given that the thing requires extended memory. Oh well I guess...


FreeBASIC DOS programs use DPMI (protected mode).
Plasma
Member
 
Posts: 110
Joined: 2016-12-12 @ 08:38

Re: Pure DOS rig people, want to test this thing I wrote?

Postby keenmaster486 » 2018-3-08 @ 05:49

I know, but my experience has been that DPMI servers need HIMEM... maybe I'm wrong on this? Do they access memory directly without needing anything loaded in CONFIG.SYS?
I flermmed the plootash just like you asked.
Very silly indeed: https://audaxeundum.wordpress.com
User avatar
keenmaster486
Oldbie
 
Posts: 1146
Joined: 2016-2-16 @ 02:04
Location: Atroxus

Re: Pure DOS rig people, want to test this thing I wrote?

Postby Scali » 2018-3-08 @ 10:13

keenmaster486 wrote:I know, but my experience has been that DPMI servers need HIMEM... maybe I'm wrong on this? Do they access memory directly without needing anything loaded in CONFIG.SYS?


Many DOS extenders can use memory in various ways...
Not loading any device drivers and having the DOS extender manage all memory is usually the best way to do it.
DPMI mainly exists to have multiple memory managers/drivers working together, because there is a common API. So when himem.sys and/or EMM386 are already loaded, the DPMI interface allows DOS extenders to still switch to protected mode and access extended or expanded memory.
Scali
l33t
 
Posts: 3629
Joined: 2014-12-13 @ 14:24

Re: Pure DOS rig people, want to test this thing I wrote?

Postby Jo22 » 2018-3-08 @ 11:17

Azarien wrote:
keenmaster486 wrote:-8 MB of RAM


This seems quite high for a 386 machine, at least for a "period-correct" one.

I feel special now. :blush: My father's business PC was a 386DX-40 with 16MB of RAM, Trident VGA,
a single-speed CD-ROM with controller card and two IDE drives (second for data) and a 20" CRT monitor with BNC connectors.
Oh, and he also had got a huge external QIC streamer with a dedicated controller card and a software called "SYTOS".
I was allowed to play some games there in '95/'96. Only from diskette, of course.
We quickly became worried when one of my games produced weird sounds, haha. :sweatdrop:

keenmaster486 wrote:
Scali wrote:Is there an option to compile with FPU emulation?

There is an FPU emulator somewhere which is reported to work; I think maybe it comes with DJGPP? In any case there is no flag on FBC to disable FPU code.

I remember Franke387 and Emul87.

By the way, is the engine using i87, i287 or i387 instructions ?
i287 seemes to be the safests (infinities excluded) of them,
since it didn't require FWAIT instuctions anymore, but most FPU emulators did handle them well enough.
"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//
User avatar
Jo22
l33t
 
Posts: 3036
Joined: 2009-12-13 @ 07:06
Location: Europe

Re: Pure DOS rig people, want to test this thing I wrote?

Postby Cizkaro » 2018-3-08 @ 11:24

I could try it out on my 486dx2 when I get time if youd like. Its a DOS 6.22 machine.
User avatar
Cizkaro
Newbie
 
Posts: 11
Joined: 2018-2-25 @ 13:14
Location: Las Vegas, NV

Next

Return to Milliways

Who is online

Users browsing this forum: No registered users and 4 guests