VOGONS


DooM

Topic actions

First post, by JoJo_Reloaded

User metadata
Rank Newbie
Rank
Newbie

Here is my latest build: DooM

IMG_20180615_152526_tn.jpg

This is a try to build the beefiest 386 ever, along having other perks, such as many sound systems or doing live overclock to the CPU.

That's it, in this computer you can change the CPU speed in real time with the push of a button:

botones.gif

At boot the system starts at its stock speed, 40mhz, but we can change it on the fly to 50, 55 and 60mhz. Apart from that, using the turbo switch we can select also 20, 25, 28 and 30mhz.

skull.gif
DooM power is flowing through its veins...

Without further ado, here is the build running:

doom.gif

https://www.youtube.com/watch?v=4uja0zSPkt8

Those are its specs:

- CPU 80386 DX (20 - 60 mhz)
- 8 mb de ram 60ns
- 128 kb cache 12ns
- Storage via a CF (using XT-ide bios)
- 3 1/2 1.44mb floppy
- SVGA Tseng Labs ET4000 1mb.
- Sound blaster 2.0 with CMS chips
- General Midi and Roland MT-32 support via S2P
- TI SN76496 support via TNDLPT (prototype unit)

https://www.youtube.com/watch?v=W4XfvI7WkhQ

The system is compatible with these sound standards:

- pc speaker
- tandy / pcjr
- game blaster
- adlib
- sound blaster
- Roland MT-32
- General Midi

https://www.youtube.com/watch?v=rVu2r-gTifw

The origins of this build come from my overclock experiments. Yes, that's one of my hobbies, trying to overclock old PCs.

This of course needs many xtal or osc changes, but many times I can't find the correct one. I need a 37.5mhz one and only can find a 35mhz or a 40mhz...

I thought of building my own programabble oscillator and found this clock generator:

2045-00.jpg

The Adafruit Si5351A clock generator. This and an Arduino can generate square waves from 8khz to 160mhz with a compatible logic for 3v or 5v, perfect for my TTL system.

IMG_20180317_185819_tn.jpg

Here is my custom oscillator adapted to a dip 14 socket.

tenor.gif

It's alive!

With that I tried several motherboards and found one, an AMD 386-40 one that surprised me...

IMG_20180317_185307_tn.jpg

60mhz! Incredible!

I never thought of a 386 running at 60mhz, even it is not entirely stable. We can blame the cache memory for it, even upgaded from 20ns chips to 12ns, the cache tag chip is the same, and can't find a replacement that keeps the system stable at 60mhz. Maybe one day 😀

In any case, at 55mhz the system is perfectly stable and we are talking a huge overclock here, +37.5%. The CPU overheats, but this is no problem...

IMG_20180428_193555_tn.jpg

My initial tests were with that big-ass cooler, but after 30 minutes or so the system went unstable. We needed more juice, so, here enters the peltier:

IMG_20180612_152742_tn.jpg
IMG_20180612_153101_tn.jpg
IMG_20180612_153536_tn.jpg

A 60w peltier keeps the CPU at stable temperatures, so that's it.

I used thermal glue to attach the cpu to the peltier, and more to join the peltier with the cooler, but the result was not as robust as I needed, because the cooler I'm using, one designed for Athlons XP, is somewhat heavy.

As these motherboards doesn't have any means to attach coolers I needed to attach it to the case, using a steel rod from side to side:

IMG_20180613_152737_tn.jpg
IMG_20180613_152742_tn.jpg
IMG_20180613_152732_tn.jpg

For controlling the logic, the clock generation circuit, the select buttons, the system start button, and the skull eyes there is an Arduino UNO doing all the work...

IMG_20180620_154108_tn.jpg

And for decoration I attached a lcd screen playing 'doom videos' with a raspberry pi...

IMG_20180615_152547_tn.jpg

... and a Doom sticker:

IMG_20190108_153018_tn.jpg

And that's all, I hope you like it!

IMG_20180603_141640_tn.jpg
DooM is watching you...

http://www.vieju.net

Reply 1 of 28, by pshipkov

User metadata
Rank Oldbie
Rank
Oldbie

Well, let me be the first to say:
Badassery !

Tell us more about the Peltier setup you got there.
Also, where is the upper limit where the system is long term stable, and how do you determine that ?

Thanks for sharing.

retro bits and bytes

Reply 3 of 28, by derSammler

User metadata
Rank l33t
Rank
l33t

Very nice build. However, using a Peltier this way is very daring. First, it's very important to exactly calculate the heat that is to be dissipated from the CPU in order to choose the right Peltier element. Choosing one with too much power is bad, and 60 watt is way too much for a 386. The Peltier element should not have more than ten times the power of the CPU's TDP, otherwise it will cool down more than 5°C below room temperature and that causes water condensation (based on usual humidity), and also there's more heat you need to get out of the way. Because of this, it's not a good idea to use a Peltier element for cooling without having it controlled by a microcontroller. You need to monitor room temperature, CPU temperature, and heatsink temperature and control the Peltier element and the fan accordingly. I built a Peltier element cooling for a 5x86 some time ago and started that simple as well. You'll soon run into trouble by leaving it this way.

Also note that unlike what most people think, a Peltier element is not a cooling element. It's a heat pump actually. That is, if the fan/heatsink can not dissipate the combined heat from the CPU and the Peltier element, the "cold" side of it turns into a heater, destroying the CPU in no time. That's why temperature monitoring is crucial. And make sure the fan won't ever fail.

Reply 5 of 28, by BinaryDemon

User metadata
Rank Oldbie
Rank
Oldbie

So how fast do DooM on a 386-60mhz run?

Check out DOSBox Distro:

https://sites.google.com/site/dosboxdistro/ [*]

a lightweight Linux distro (tinycore) which boots off a usb flash drive and goes straight to DOSBox.

Make your dos retrogaming experience portable!

Reply 6 of 28, by JoJo_Reloaded

User metadata
Rank Newbie
Rank
Newbie

Thank you all!

derSammler wrote:

Very nice build. However, using a Peltier this way is very daring. First, it's very important to exactly calculate the heat that is to be dissipated from the CPU in order to choose the right Peltier element. Choosing one with too much power is bad, and 60 watt is way too much for a 386. The Peltier element should not have more than ten times the power of the CPU's TDP, otherwise it will cool down more than 5°C below room temperature and that causes water condensation (based on usual humidity), and also there's more heat you need to get out of the way. Because of this, it's not a good idea to use a Peltier element for cooling without having it controlled by a microcontroller. You need to monitor room temperature, CPU temperature, and heatsink temperature and control the Peltier element and the fan accordingly. I built a Peltier element cooling for a 5x86 some time ago and started that simple as well. You'll soon run into trouble by leaving it this way.

Also note that unlike what most people think, a Peltier element is not a cooling element. It's a heat pump actually. That is, if the fan/heatsink can not dissipate the combined heat from the CPU and the Peltier element, the "cold" side of it turns into a heater, destroying the CPU in no time. That's why temperature monitoring is crucial. And make sure the fan won't ever fail.

Yes, I am aware of this, and because of that the CPU is insulated with vaseline in all sides that condensation could happen. The system has been running more than a year like this*, have tested it for more than 4 hours straight at 55mhz and without any problems. I chose that cooler because it keeps the temperature just stable, and with the 12x12 fan on the case to extract the heat the system can run like that indefinitely.

Here you can see the 386 with the vaseline insulation, underneath, on the sides, and near the pins, that was a heck of a job with a thin brush.

http://vieju.net/pub/Imagenes/Doom/IMG_20180612_152608.jpg

after that I cleaned the top with alcohol, to make the best conductive surface with the thermal glue:

http://vieju.net/pub/Imagenes/Doom/IMG_20180612_152742.jpg

* I finished the system on July of 2018, but didn't had the time to collect all the pictures, document it, etc... I have been using it since then with no problems 😉

http://www.vieju.net

Reply 7 of 28, by Tertz

User metadata
Rank Oldbie
Rank
Oldbie

paint the case to colors of Doom walls

> The CPU overheats, but this is no problem...

except it may degrade, near capacitors to reduce life time, etc
in case to use PC significant time, but not to keep it on a shelf

DOSBox CPU Benchmark
Yamaha YMF7x4 Guide

Reply 8 of 28, by FuzzyLogic

User metadata
Rank Member
Rank
Member

I am in awe. file.php?avatar=39360_1541242356.gif.

That is the fastest I've seen Doom on a 386. Great job!

Also, that clock generator is nifty! I'd love to see you or someone create a small drop-in replacement with a few programmable settings and a header to connect a front panel button. I'd buy that.

Reply 12 of 28, by MaverickUK

User metadata
Rank Newbie
Rank
Newbie

That's damn impressive. It never would have crossed my mind to create a modded case like that for a retro PC 😀

http://www.strifestreams.com // Regular nuggets of retro gaming

Reply 15 of 28, by root42

User metadata
Rank l33t
Rank
l33t

On a slightly related note: it has been 25 years soon the release of Doom II:

Attachments

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 17 of 28, by pshipkov

User metadata
Rank Oldbie
Rank
Oldbie

Few questions @JoJo, if you don't mind.

So far my experience with overclocking clean (real) 386 systems differ a bit from what you show here (which is impressive).
What i found is that 45MHz is where the upper limit is, if one considers maxed out RAM/CACHE, tightest wait states and completely stable system.
After the 45th megahertz things are starting to missbehave.
Peripherals are starting to give up - especially IDE controllers, so i have to move to SCSI which comes with its own set of complications when more peripherals are added to the system (like sound card(s), lan card, I/O controller etc).
40MHz rated FPUs start hanging at 55MHz.
33MHz rated ones start hanging at 50MHz.
I have few 386 boards that overclock rather well.
1 of them allows me to play DOS games at up to 55MHz, another one can go up to 50MHz.
At 55MHz wait states have to be relaxed, which actually leads to lower performance than 50MHz system with lowest available wait states.
But so far i haven't encountered 386 system that is actually completely stable at 50MHz or higher. The crucial test is offline 3D rendering.
I can get some boards to pass it, but only with quite a bit of tweaking, lowering wait states, reducing RAM and CACHE, removing most of the peripherals, etc.
Basically stuff that turns the system into a hot custom mess.

So, i am wondering about couple of things:
- Did you try to maxing-out RAM/CACHE ?
- What are your BIOS options - wait states, etc ?
- Can you run Windows3.1 ?
- Did you try running apps different than the common DOS games ?

Thanks.

retro bits and bytes

Reply 18 of 28, by JoJo_Reloaded

User metadata
Rank Newbie
Rank
Newbie
pshipkov wrote:
Few questions @JoJo, if you don't mind. […]
Show full quote

Few questions @JoJo, if you don't mind.

So far my experience with overclocking clean (real) 386 systems differ a bit from what you show here (which is impressive).
What i found is that 45MHz is where the upper limit is, if one considers maxed out RAM/CACHE, tightest wait states and completely stable system.
After the 45th megahertz things are starting to missbehave.
Peripherals are starting to give up - especially IDE controllers, so i have to move to SCSI which comes with its own set of complications when more peripherals are added to the system (like sound card(s), lan card, I/O controller etc).
40MHz rated FPUs start hanging at 55MHz.
33MHz rated ones start hanging at 50MHz.
I have few 386 boards that overclock rather well.
1 of them allows me to play DOS games at up to 55MHz, another one can go up to 50MHz.
At 55MHz wait states have to be relaxed, which actually leads to lower performance than 50MHz system with lowest available wait states.
But so far i haven't encountered 386 system that is actually completely stable at 50MHz or higher. The crucial test is offline 3D rendering.
I can get some boards to pass it, but only with quite a bit of tweaking, lowering wait states, reducing RAM and CACHE, removing most of the peripherals, etc.
Basically stuff that turns the system into a hot custom mess.

So, i am wondering about couple of things:
- Did you try to maxing-out RAM/CACHE ?
- What are your BIOS options - wait states, etc ?
- Can you run Windows3.1 ?
- Did you try running apps different than the common DOS games ?

Thanks.

- The cache chips are replaced from 20ns ics to 12ns, it has the maximum that the board supports, 128kb
- You can see the bios settings on the video posted, around 1:40, but ISA clock is 1/4 CPU clock, so 13,75mhz at 55mhz. In fact I tried 1/3 (18,33 mhz ISA clk), and all is stable, but the VGA artifacts. The ram is at 2ws, using 60ns 1mb simms.
- Yes
- I have tried many different programs. Believe me, the system is stable 😀

http://www.vieju.net

Reply 19 of 28, by pshipkov

User metadata
Rank Oldbie
Rank
Oldbie

I am not questioning by any means the legitimacy of your Doom system. Period. 😀

Just sharing observations and wondering how you got around the same problems.
I am genuinely interested in how things work in Doom.
For example, running the system at 55mhz with clock divider of 6 is more or less equal to 50mhz system with clock divider of 4.
Or 50mhz with divider of 4 is equal to 45mhz with divider of 2.

If you have a moment at some point later it will be great to post some bench mark results.

Thanks and keep the good work comming !

retro bits and bytes