I built this PC well over 2 years ago now but for whatever reason it really struck a chord, so this is a long, probably boring, definitely self-indulgent love letter to my Cyrix. Here’s the original build thread if anyone’s interested. It’s been endlessly refined since then, and as it’s evolved my other retro creations have had to sit and watch while the Cyrix assumed their roles – early DOS, late DOS, early Win9X, NES, SMS, C64, Atari 2600. I'm running Windows 98SE with a boot menu to choose b/w DOS 7 or Windows - 'DOS mode' sees most of the action but having Windows there with USB support (via a USB 2.0 add-on card) is very handy, and of course I needs my Solitaires. The PSU is a relatively newly made Startech AT unit - I don't think they make them anymore which is a shame. The monitor is a Philips 107E5, which is a 17" shadow mask. Not perfect geometry with some resolutions but it has a lovely bright, clear image and doesn't make any annoying sounds like some CRTs do. CPU / Motherboard: The motherboard I went with is a GA-586T2, mainly because it's what I had on hand at the time. It's a run-of-the-mill example of a Socket 7 board from ~1997 - 512kb cache, supports SDRAM or SIMM, USB, etc. I've had issues with the PS2 header in DOS but otherwise it's been reliable and easy to work with. I'm using 64MB of SDRAM which again is what I had on hand - probably more that this machine needs but not so much that it causes problems. CPU-wise I started off with a 6x86MX PR233 - a great chip but it struggled a bit with SVGA DOS era stuff, so I quickly upgraded to an MII 300GP which was released in mid-1998. The 300 is of course the 'Pentium Rating' or 'Performance Rating' but it's actually a 233MHz part that can (sometimes) match an Intel Pentium 2 running at 300Mhz. A bit cheeky perhaps but Cyrix had to work any angle they could in their fight for market share - there's a good rundown of the battle here. There are multiple utilities out there which let you twiddle Cyrix CPU registers to potentially improve performance. From what I understand this has more of an impact with earlier chips and earlier motherboard chipsets - in my case all the good stuff seems to be set by default because try as I might, I couldn't get any performance gain out of various utilities. Just as important to me as uber performance though is slowing this machine down to cater for speed sensitive games - a 33MHz 486 is what I aimed for. I've tried various methods over the years but my best results to date have been via a combination of SETMUL and AT-SLOW. SETMUL can't change the multiplier with this CPU sadly but it can disable the L1 cache, which brings the machine down to ~66Mhz 486 territory. AT-SLOW takes the edge off nicely and the result is a smooth slowdown that can be enabled / disabled on the fly via a couple of batch files: 486.BAT Code: C:\UTILS\SETMUL\SETMUL >nul L1D C:\UTILS\AT-SLOW\AT-SLOW >nul /T133 686.BAT Code: C:\UTILS\AT-SLOW\AT-SLOW >nul /r C:\UTILS\SETMUL\SETMUL >nul L1E These batch files can then in turn be called by other a batch files to boot the relevant game like so: DUNE2.BAT Code: CALL 486 DUNE2.EXE CALL 686 Video: I had a Matrox Millennium in this machine initially and they're great cards for later DOS games, but they have some compatibility issues with earlier titles. A mini-project ensued and with compatibility, availability, speed, and image quality in mind I determined that an ARK2000 based card was the one for me. The example I have was made by 'Legend', but it appears to have been produced in the exact same format by different companies, including Hercules as a 'Stingray 64'. I have an example of the Stingray now too and it's just as good, though a tad slower than the Legend card. Swapping in the Legend BIOS fixed that though, what a Legend The last challenge with the ARK was getting a linear frame buffer initialised - this speeds things up noticeably in SVGA modes. As with the CPU registers there are a few different utilities around for enabling the LFB in Cyrix machine - '6X86OPT' is what I use. With the Matrox all I needed to do was send in the relevant flag and 6X86OPT did the rest, but not with the ARK. Long story here if interested but in summary with this card, which has a less advanced VESA implementation, I needed to determine where in memory its LFB resided, pass that memory location in to 6X86OPT, and then use Univbe v6.53 to enable it. Later versions of Univbe didn't work for me and 6.53 uses less memory, so I deem it good. Another advantage of using Univbe with this card is that you get VESA 3 support, which lets you adjust the refresh rate of SVGA modes with utils like 'UNIRFRSH.COM'. Duke3D for example is much easier on the eyes @85Hz, I find. And regarding 3D - I do have some good Voodoo based options but ultimately I decided that I wanted to keep this machine lean and mean. I lost interest in gaming for a while at about the time 3D was taking off so I have no nostalgia for it other than a few PSX games and Quake, and they play great on my other permanently set-up retro machine (a Windows XP P4). And of course Cyrix don't really do 3D anyway thanks to the weak FPU they became infamous for when Quake hit the scene. The MII 300 actually runs quake pretty well, but business applications and pre-3D is where they shine and that's OK by me. Sound: As everyone knows there’s no such thing as the perfect ISA sound card but my long and winding road has led me to a lightly modded YMF719E. This is a SB Pro clone + WSS chipset that found its way on to countless motherboards and cheap sound cards. Most of these cards are half-height unfortunately, so bigger MIDI daughter-boards don’t fit. The Serdaco X2GS solves that though; tiny, sounds awesome, and can be set to reverse stereo to counter the card’s incorrect wave-table stereo. Another challenge with these 'OPLSAx' cards is the DOS software, called 'SETUPSA'. It's pretty awful but there are alternatives these days thanks to Unisound and Tiido’s SETYMF. It’s important with this chipset however to set the 'SB VOL' mixer setting to its lowest value or you won’t get stereo in Wolf3D, which uses a mixer hack to simulate stereo instead of using the SB Pro (or SB16’s) stereo capability. I didn’t try too hard I admit but I couldn’t work out how to set up the mixer correctly with those alternatives, so I’m sticking with the original for now. Here are my SETUPSA settings - note the 'SB VOL' values set to 1: As you can see there are actually two mixers on this card, one for the SB Pro emulation and one for the WSS (which is excellent BTW), and you obviously need to assign resources to everything. This makes SETUPSA’s interface pretty confusing but the defaults are generally OK. The WSS wave-table mixer setting is labelled 'WSS AUX2'. The SB Pro mixer’s wave-table setting is called 'FM' – I think wave-table and FM synth volumes are linked but in saying that I’ve set the FM option way down low and tried Wolf3D – the music was the correct volume. Wolf3D might be messing with the mixer? Who the hell knows but again the X2GS comes to the rescue with the ability to change its onboard amp levels, so you can get perfect levels for everything with some patience. Speaking of levels, some DOS games are much too loud and earlier games generally don’t include a volume setting in-game. The YMF71x SB Pro mixer is compliant with the real thing so handy little DOS apps like SBPVOL can be used to adjust levels on the fly. To avoid having to lunge for the volume knob when I load a loud game (I’m looking at you Jill of the Jungle) I’ve set up a couple of batch files to do this automatically – one to reduce the volume: LOWMIX.BAT Code: C:\UTILS\SBPVOL\SBPVOL F5 V5 N And then one to reset the mixer back to my preferred levels: FIXMIX.BAT Code: C:\UTILS\SBPVOL\SBPVOL SS N C:\DRIVERS\YMF\SETUPSA /S These are called within the batch file that I use to call the relevant game, for example: GO.BAT Code: call lowmix jjfile1.exe call fixmix The final challenge with SETYMF is that it has an annoying habit of updating your AUTOEXEC.BAT every time you call it if it doesn't find a reference to itself where it expects to - not cool and unnecessary given all its settings are stored in an .ini file. To get around that I opened the 'SETUPSA' executable in my trusty hex editor and changed the relevant reference to ‘AUTOEXEC.XXX’ (or whatever); the app still works fine but obviously can’t find .XXX and moves on. HDD: For years I've used a period correct spinner for the OS and a CF adapter to run games off - "the grinding noise is part of the experience" I'd tell myself while I sat patiently waiting for Windows to boot. But recently the click of death was also to be heard so I bit the bullet replaced both drives with a 16GB SSD via one of those nice Startech IDE->SATA adapters. As is always the case with SSD's vs mechanical drives (in my experience) it's been an awesome upgrade. DOS appears so fast it's like booting a game console, and Windows 98 whips along nicely too. I'll never go back. Emulation: Over the years I've built up a collection of retro systems that I have even the slightest nostalgia for but I can't have them all set up at once, so generally they just sit in their box. Much to my delight I've found that my mighty Cyrix can do a more than satisfactory job of emulating most of them - not perfectly of course but well and truly good enough for me to fire up an old favourite and enjoy it. All of the emulators I'm using are DOS based - I didn't want to have to wait for Windows to load before I could play my 8-bits. But fundamentally this PC doesn't have enough Mhz to run Windows based emulators anyway. For a controller I use a Logitech pad attached to the gameport of the sound card, which works like a charm. The usual disclaimer RE the images below - they all look much better in real life. I should give up taking photos of CRTs. SMS There are quite a few DOS based SMS emulators but MEKA was a pretty clear winner. Getting the most out of it with such a limited machine was a challenge though and took countless hours of trial-and-error - fun! The latest version (0.70) was able to do lovely smooth scrolling with vsync on, but once audio was enabled it got choppy and try as I might it was never good enough, even when using frame-skipping and low audio quality. The older version 0.51 however was closer to the mark - perhaps it was a little more light weight. With this version I was able to use 22Hz audio and get an almost acceptably smooth scroll with frame-skipping instead of vsync. The final piece of the puzzle was using a super high refresh rate - at 130Hz refresh the scrolling is perfect, with only very occasional stutters in the audio. I have ~15 of my fave ROMs running and all work great. NES NES emulation for this era machine is of course all NESticle, version x.xx being the most recent. I had some issues around games running too fast or slow depending on whether they were NTSC or PAL and there are of course different versions of ROMS around, but in the end this was easy to deal with via a command-line switch that lets you specify FPS. Then it was just a case of comparing the emulated speed to the real thing and then writing a batch file which passed the relevant FPS setting through for each game. C64 As much as I love my C64 I just wasn't using it, so it also got Cyrixed. Again there are a few options including VICE which is well known, but CCS64 was the easiest to use I found and gave the best result on this PC. It's amazing how well it emulates this quirky machine actually - all I'm missing is the crunching of the 1541 disk drive. Its SID emulation is excellent - not 100% accurate of course but when it's wrong it's not bad, just different. Like a good OPL3 clone - you can tell the difference but it's not offensive. All the games I've tried have worked fine, even multi-disk, and maybe half of the demos I've tried have worked too which is impressive given the tricks and hacks those use to perform their magic. You can switch controller ports on the fly and it supports JiffyDOS so boot times are as quick as my 1541 Ultimate II+ if not faster. Atari 2600 Emulating the 2600 was too easy thanks to z26 (version 1.58). Other than choosing a resolution there was no work required - it sounds good, it looks good, and the speed is spot-on.