PDA

View Full Version : Wolfenstein 3d system (286 vs. 8086 ?)



vitoal18t
June 14th, 2012, 07:08 AM
Hello Everyone,

I joined this forum recently and in my first thread I learned a ton about PC history and x86 in general, so thanks for explanations!
http://www.vintage-computer.com/vcforum/showthread.php?31226-Youngest-8086-8088-PC

I wanted to confirm Wolfenstein 3d system requirements and try to understand why Wolf3d required 286.

I found this YouTube video, which got me thinking:
http://www.youtube.com/watch?v=5f7gW5X24ao

Wolfenstein 3d Requirements:
80286 or faster
640K of memory
VGA

I also wanted to confirm that Wolf3D did NOT use DOS-extenders (like Doom did), so a 286 machine configured with 1MB (640K Conventional) memory was enough to run Wolf3D.
I remember compiling Wolf3D using BCC 3.1 and there was no mention of DOS extenders.

I am basically trying to figure out if Wolf3d ran completely in Real 16-bit mode, and it only needed 640KB of RAM, which 8086 could access without any issues. So the only reason 286 was required, was that at a given clock rate 286 was a much faster processor than the 8086.

As a more general question, in late 80s and early 90s, when software sys. req. called out for 286 instead of 8086 it wasn't because of implied 640KB+ memory requirement, since 286 could access up to 16MB with extenders, I assume memory requirements could in many cases be addressed on XT (8086) system with expanded memory boards. So it must have been the raw processing power of 286.

commodorejohn
June 14th, 2012, 07:39 AM
Wolfenstein doesn't use any DOS extenders, since it's not 32-bit and nothing used the 286's protected mode. The 286 requirement might be simply so that people aren't trying it on an XT and complaining because it's too slow, or it might be that Wolfenstein actually uses some 286 instructions (arbitrary immediate shifts, for example, would be a major help with fixed-point math, which it relies on heavily.)

Jorg
June 14th, 2012, 08:37 AM
even a 286 was a bit slow, althought it worked.
I had more fun with Wolfenstein on my 386-40, certainly with soundcard.

IIRC yes, it needed conventional memory only, but would make use of EMS/Exp too.
->>

SYSTEM REQUIREMENTS


286 Computer (386+ Strongly Recommended)
528k of conventional memory (2Mb total memory recommended)
3 meg of Hard Drive Space (for shareware)
8 meg of Hard Drive Space (for registered)


EDIT: Aaaah.. it survived! http://home.online.no/~p-olstad/wolfenstein/index_old.html
EDIT2: Seems it doesnt run on 8088.

Stone
June 14th, 2012, 08:46 AM
I'm in full agreement with Jorg. I didn't care for it on my 286 but it was great on my 386-40.

vitoal18t
June 14th, 2012, 08:58 AM
So I guess the only real advantage for Wolfenstein 3D on 386-40MHz was that the CPU ran at 40MHz, vs. 6, 8MHz or 12MHz as early 286 machines would run.

Wolf3D is a 16-bit real mode game, so 32-bit wasn't an advantage.

commodorejohn
June 14th, 2012, 11:01 AM
Well, the 386 is better even with 16-bit code clock-for-clock, I believe, but yeah, it basically comes down to speed.

pearce_jj
June 14th, 2012, 11:16 AM
Were there's a will there's a way: http://www.youtube.com/watch?v=5f7gW5X24ao

As implied already, each new CPU introduced new instructions as well as new modes and address widths. This was a great debate in the 80's - make the CPUs with less instructions and a higher clock speed, for more instructions and a lower clock speed, i.e. RISC vs CISC as it was dubbed.

Jorg
June 14th, 2012, 11:37 AM
Ah yes, I believe I even dl that recompiled one once. But it was not really playable.

barythrin
June 14th, 2012, 11:51 AM
Thinking about it I thought Mike Chambers (here (http://www.vintage-computer.com/vcforum/showthread.php?17280-Wolf3D-hacked-for-8086-8088-CPUs)) modified it to run on 808x. Not sure about performance though.

Great Hierophant
June 14th, 2012, 12:11 PM
You would need a really fast 8086 or V30 for it to be playable.

Wolfenstein 3D can be very playable on a 286 :

http://www.youtube.com/watch?v=7lBHxfsCqWw

I wonder if a 286 may be faster than a 386SX running 16-bit code. Both systems use a 16-bit external data bus and the 32-bit registers do not really get used when running 16-bit code. I think I read somewhere that the instruction timings in the 386 often take an extra clock compared to the same timing in a 286.

Many 386 motherboards came with onboard cache, but less of that is seen with SX motherboards and it was not common in 286 designs. One clear advantage a 386SX would have over a 286 is accessing expanded memory. On a 286, expanded memory was typically added with an expansion card, which would be accessed at a maximum of 8.33MHz. On the 386, its MMU can map extended memory to expanded memory, which runs as fast as the system RAM is run.

Megatron-uk
June 14th, 2012, 12:39 PM
Yep, that Youtube link above is of my 286-16. It's the same board+cpu that I owned from new, and the first system I actually played PC games on in the early 1990's. I never had any problems with the speed of Wolfenstein 3D. On my next machine I upgraded to, a 386SX 40, if anything I thought it was perhaps too fast. Perhaps a 386-20 or 25 would be about spot on, imo.

Maverick1978
June 14th, 2012, 01:00 PM
FWIW, I used to run Wolf3D on a PS/2 Model 30-286 (10mhz), and it ran quite well - once you lowered the play window to where it was about 3/4" from being full-screen. Any larger than that, and it suffered from slowdown. It was probably a year after it came out before I was able to run it on a faster machine (my first computer, a PB 486SX-25 system), and then it ran well at full-screen, of course.

So far as the 386 vs. 286 question, ISTR reading an article about that, where the higher-clocked 286 systems (16mhz and 20mhz) were actually running faster than some "budget" 386's (386-10's and 16's, IIRC). But perhaps that's a topic for another thread :)

dorkbert
June 14th, 2012, 02:11 PM
So far as the 386 vs. 286 question, ISTR reading an article about that, where the higher-clocked 286 systems (16mhz and 20mhz) were actually running faster than some "budget" 386's (386-10's and 16's, IIRC). But perhaps that's a topic for another thread :)

IIRC, 386 were clocked at 16/20/25/33 until AMD released 40, not counting weird clocks speeds people achieved using ... unsanctioned clock oscillator speeds while overclocking. I think the fastest 286 I've heard of was clocked at 20.

The gravest sin intel committed (up to that point) was the inability of 286 to switch back to real mode once it enters protected mode. Many felt that 386sx was everything that 286 should've been, but wasn't. Since then, there were the Pentium FDIV... and yes, many that worked in intel were (equally) outraged when P6 was named "Pentium Pro"...

Great Hierophant
June 14th, 2012, 05:08 PM
The gravest sin intel committed (up to that point) was the inability of 286 to switch back to real mode once it enters protected mode. Many felt that 386sx was everything that 286 should've been, but wasn't. Since then, there were the Pentium FDIV... and yes, many that worked in intel were (equally) outraged when P6 was named "Pentium Pro"...

It may be slightly unfair to criticize Intel for its 286 shortcoming, considering that it was first released in 1982 and people did not yet realize how dependent the PC world was going to be on real mode DOS. That was not easily foreseeable. However, the FDIV bug and Intel's reaction to it was justly criticized. The Pentium Pro had unimpressive 16-bit performance, which was still very relevant in 1995 when it was released.

commodorejohn
June 14th, 2012, 05:20 PM
It may be slightly unfair to criticize Intel for its 286 shortcoming, considering that it was first released in 1982 and people did not yet realize how dependent the PC world was going to be on real mode DOS. That was not easily foreseeable.
That's true enough - on the other hand, I can't think of a good argument for not being able to go from mode B to mode A when you're able to go from mode A to mode B. It's annoyingly non-orthogonal, even if they couldn't have told just how necessary it would turn out to be.

deathshadow
June 14th, 2012, 09:41 PM
To me it's just a matter of video bandwidth -- assuming a 30% screen height average per frame redraw, in mode 0x13, you're talking about moving 21k per FRAME to the screen from a buffer WHILE dynamically resizing the content... yer not gonna do that at 4.77mhz on a 8 bit bus -- you're not gonna do that without some of those 286 instructions at 8mhz on a 8 bit bus...

Which is why to play it on a 6mhz AT to keep the frame rate playable you had to shrink the viewport, and it really took a 386 to run it full screen width on a 8 bit VGA.

... and that's without figuring double-buffering in SOFTWARE into the equation... or did Wolfie use unchained mode? I forget.

commodorejohn
June 14th, 2012, 09:57 PM
I very much doubt Wolf3d resizes the image dynamically - I presume it simply changes the angle values for each column that it's casting a ray to based on the width of the screen, which only needs to happen once when the screen size is changed. Vertical scaling is already part of the raycasting process, so it's no big deal to figure for the other direction, either.

deathshadow
June 14th, 2012, 11:50 PM
I very much doubt Wolf3d resizes the image dynamically - I presume it simply changes the angle values for each column that it's casting a ray to based on the width of the screen, which only needs to happen once when the screen size is changed. Vertical scaling is already part of the raycasting process, so it's no big deal to figure for the other direction, either.

Wolf only casts to find distance to the nearest wall at the angle corresponding to a screen column, a one pixel wide column of the texture is then scaled to fit that screen column -- there isn't enough processing time to cast every point on the screen. It's actually what was a big step forward with the blake stone games, is it took the time to raycast the floor and ceiling if you had enough processor (386/33 or faster).

You get down to a 286, you're NOT going to be raycasting on both visual axis.

To speed things up, they even store the textures sideways -- that way only the screen coordinates need the add instead of an increment... it still means that the textures ARE scaled -- but only the pixel-wide column being used to render the current frame.

commodorejohn
June 15th, 2012, 05:29 AM
Yes, obviously you're not going to be casting to each pixel. What I was saying is that the rays cast across the X axis are one of two changes needed to scale the screen, and that change doesn't have to be done dynamically. The other is the vertical scaling, which again you can precalculate when the screen size changes; since vertical texture scaling is already part of the engine process, that's all but free. The part of screen size that would make the impact on performance is the number of columns it has to render (hence why DOOM included a column-doubling mode,) not having to dynamically resize a rendered image.

Dave Farquhar
June 15th, 2012, 06:46 AM
IIRC, 386 were clocked at 16/20/25/33 until AMD released 40, not counting weird clocks speeds people achieved using ... unsanctioned clock oscillator speeds while overclocking. I think the fastest 286 I've heard of was clocked at 20.

There were 25 MHz 286s, but not from Intel. I think it was AMD and/or Harris who released the 25 MHz chips.

k2x4b524[
June 15th, 2012, 05:51 PM
It was harris that did this, they were quite fast if you could find a 25mhz 80287 to go with it.. Then there were the early 386 boards that could utilize an 80287.... Bleh..


There were 25 MHz 286s, but not from Intel. I think it was AMD and/or Harris who released the 25 MHz chips.

vitoal18t
June 17th, 2012, 09:20 PM
I watched Wolf3D on 8086 video again:
http://www.youtube.com/watch?v=5f7gW5X24ao

It made me wonder if it is a video of Wolf3D running on 4.77MHz or 8MHz 8086, in the beginning it says TURBO XT and what looks like 8MHz.

Reading Mike Chambers original post, it sounded like he has 4.77MHz and has a laptop that could run faster.
" then i could try it on my supersport 8088 laptop which has a CGA built-in. i'd like to see that because the 8088 in it can be run at a turbo mode of 7.16 MHz instead of 4.77. the byte packing would eat up some CPU though."

In any event, if it is actually video of game performance of Wolf3D on 4.77MHz XT, it is rather impressive.

Now, I really wonder how Hovertank 3D performed on 8088 XT @ 4.77MHz. Maybe the absence of textures speed up the engine a bit. Would be awesome to see the video.

Does anyone remember system requirements for Hovertank 3D? Was it IBM PC with EGA and 640K?

pearce_jj
June 18th, 2012, 11:08 AM
It was harris that did this, they were quite fast if you could find a 25mhz 80287 to go with it.. Then there were the early 386 boards that could utilize an 80287.... Bleh..

IIRC there were some boards that could take either too.

Stone
June 18th, 2012, 11:20 AM
I've got an Intel D80287-10 if that's any help to anybody.

SEGStriker
October 12th, 2017, 08:28 AM
PCE emulator (8088, 8086 and 80186 CPU emulated) also runs Wolf3D, maybe without that hacked wolf8086.exe.
Not sure if 286 CPU instructions are really used maybe 80186 CPU also works, because it does some of 286 instructions.

Caluser2000
October 12th, 2017, 10:18 AM
SEGStriker welcome to vcfed. Don't forget to introduce yourself in the correct forum :)

Casey
October 13th, 2017, 06:22 PM
There were some co-processors which could perform on either platform. I have a Zenith 286 system with a Cyrix 82S87 which is identified as a 387 by Nortons Sysinfo 4.5. I've read it was based on The Cyrix 83D87.

At least, I assume it would also work on a 386 platform, given it's antecedents....

evildragon
October 13th, 2017, 08:46 PM
I tried that 8086 wolf 3D on my model 25 (with the VGA card and V30), and all I got were corrupt visuals. It did play but graphics placement weren't correct at all..

thanhmy
October 13th, 2017, 10:31 PM
Hello everyone, I'm newbi.

I also looking for this problem