Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
blog:486_advantech_pca6145 [2024/04/13 08:45] – john | blog:486_advantech_pca6145 [2024/05/10 17:25] (current) – [Results] john | ||
---|---|---|---|
Line 166: | Line 166: | ||
===== Software Setup ===== | ===== Software Setup ===== | ||
- | === DOS & Drivers === | + | ==== DOS & Drivers |
This is a fairly standard setup, there isn't a need for any particular wacky drivers or fancy memory setups. A basic configuration to allow boot in HIMEM + EMM386 (XMS + EMS) and a secondary one to boot with only HIMEM (XMS only) is sufficient for all of the games installed so far. | This is a fairly standard setup, there isn't a need for any particular wacky drivers or fancy memory setups. A basic configuration to allow boot in HIMEM + EMM386 (XMS + EMS) and a secondary one to boot with only HIMEM (XMS only) is sufficient for all of the games installed so far. | ||
Line 192: | Line 192: | ||
fileshigh=40 | fileshigh=40 | ||
buffershigh=20 | buffershigh=20 | ||
- | rem dosdata=high | ||
stacks=9, | stacks=9, | ||
lastdrive=i | lastdrive=i | ||
Line 200: | Line 199: | ||
**Autoexec.bat** | **Autoexec.bat** | ||
< | < | ||
+ | @ECHO OFF | ||
+ | SET PROMPT=$P$G | ||
+ | SET TEMP=C:\TMP | ||
+ | SET TMP=%TEMP% | ||
+ | SET PATH=C: | ||
+ | SET PATH=%PATH%; | ||
+ | SET PATH=%PATH%; | ||
+ | SET PATH=%PATH%; | ||
+ | |||
+ | REM =============== Disk cache ==================== | ||
+ | LOADHIGH LBACACHE | ||
+ | |||
+ | REM =============== Network Stack ================= | ||
+ | LOADHIGH C: | ||
+ | SET MTCPCFG=C: | ||
+ | |||
+ | REM =============== Sound Config ================== | ||
+ | SET BLASTER=A220 I7 D1 T4 P330 | ||
+ | CALL UNISOUND.BAT | ||
+ | |||
+ | REM =============== Mouse Driver ================== | ||
+ | CT20 /P /B | ||
+ | |||
+ | REM =============== 4DOS ========================== | ||
+ | LOADHIGH C: | ||
</ | </ | ||
- | === Game Testing | + | ==== Sound Software |
- | === Video BIOS Bugs === | + | The ESS1864F sound chip on the ISA sound card doesn' |
+ | |||
+ | * Adlib - FM/OPL2 music/ | ||
+ | * Soundblaster 1 - FM/OPL2 music/ | ||
+ | * Soundblaster Pro 2 - FM/OPL3 music/ | ||
+ | * ESS native mode - FM/ESSFM music/ | ||
+ | * MPU-401 - UART mode MIDI interface //(3)// | ||
+ | |||
+ | By having support for Adlib, Soundblaster and Soundblaster Pro 2, this chip covers almost the entire range of DOS games. The only titles that would not be supported are anything that predates Adlib; for example Covox or Tandy audio. It may be possible to add a discrete external Covox or Tandy audio adapter to the parallel port in the future. | ||
+ | |||
+ | //(1) The enhanced ESS FM mode sounds brighter and allow for more simultaneous FM parts than regular OPL3 playback would allow. Not supported in all games.// | ||
+ | |||
+ | //(2) Native support for the ESS 16bit digital audio is not very common in DOS titles, but is supported in Windows.// | ||
+ | |||
+ | //(3) Intelligent mode MPU-401 MIDI is not supported as standard, but can be implemented using the SoftMPU utility.// | ||
+ | |||
+ | The lack of a dedicated 16bit Soundblaster mode is not really that much of a drawback; there wasn't a lot of games which had native 16bit digital audio, with very few titles using actual 16bit samples. | ||
+ | |||
+ | The ESS1868F can be initialised with the excellent // | ||
+ | |||
+ | * https:// | ||
+ | * {{ : | ||
+ | |||
+ | I have a simple batch file which runs and configures // | ||
+ | |||
+ | < | ||
+ | SET BLASTER=A220 I7 D1 T4 P330 | ||
+ | UNISOUND.COM /C2 /V75 /VF75 /VW75 /VC75 | ||
+ | </ | ||
+ | |||
+ | Where //C2// is the second Plug & Play ISA card in the system (the network card is the other), and all the others are simply volume controls (set everything to 75%). | ||
+ | ==== MIDI Software ==== | ||
+ | |||
+ | Since the MT32Pi can operate in MT-32 or General MIDI mode, I used the mt32pi-control software to control it from the DOS command prompt. | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | I also wrote a couple of simple batch file wrappers to automate the various mode changes: | ||
+ | |||
+ | **MIDI_MT.BAT** | ||
+ | < | ||
+ | rem ==== Sets the device to MT-32 (rev 0) mode ==== | ||
+ | MT32-PI.EXE -v -m --mt32-reset -b old | ||
+ | </ | ||
+ | |||
+ | **MIDI_MTN.BAT** | ||
+ | < | ||
+ | rem ==== Sets the device to MT-32 (rev 1) ==== | ||
+ | MT32-PI.EXE -v -m --mt32-reset -b new | ||
+ | </ | ||
+ | |||
+ | **MIDI_CM.BAT** | ||
+ | < | ||
+ | rem ==== Sets the device to CM-32L mode ==== | ||
+ | MT32-PI.EXE -v -m --mt32-reset -b cm32l | ||
+ | </ | ||
+ | |||
+ | **MIDI_GM.BAT** | ||
+ | < | ||
+ | rem ==== Sets the device to General MIDI/ | ||
+ | rem ==== Chooses soundfont number 0 ==== | ||
+ | MT32-PI.EXE -v -g --gm-reset -s 0 | ||
+ | </ | ||
+ | |||
+ | === SoftMPU === | ||
+ | |||
+ | The MPU-401 MIDI port on the ESS1868F card is a simple UART implementation - it works with many later games without issue, but a lot of earlier titles (late 1980's and the first couple of years of the 1990' | ||
+ | |||
+ | Fortunately the //SoftMPU// utility can work on the ESS card, and implements an intelligent mode MIDI interface via software. | ||
+ | |||
+ | * https:// | ||
+ | * {{ : | ||
+ | |||
+ | I wrote a batch wrapper around softmpu that also works on Dosbox, so I can add this entry before any games expecting an intelligent mode MIDI interface and it will set up the right environment, | ||
+ | |||
+ | With the ESS card, you must configure SoftMPU to use the same MPU base address, Soundblaster base address and Soundblaster interrupt number that you configured in the SET BLASTER line and passed to unisound: | ||
+ | |||
+ | **Softmpu.bat** | ||
+ | < | ||
+ | @ECHO OFF | ||
+ | SET DOSBOXDRIVE=Z: | ||
+ | |||
+ | IF EXIST %DOSBOXDRIVE%\COMMAND.COM GOTO DOSBOX | ||
+ | GOTO MPU | ||
+ | |||
+ | :MPU | ||
+ | LOADHIGH C: | ||
+ | GOTO EXIT | ||
+ | |||
+ | :DOSBOX | ||
+ | ECHO SOFTMPU not supported in Dosbox | ||
+ | ECHO Configuring MPU-401 to intelligent instead... | ||
+ | %DOSBOXDRIVE%\CONFIG -SET mpu401=intelligent | ||
+ | GOTO EXIT | ||
+ | |||
+ | :EXIT | ||
+ | </ | ||
+ | |||
+ | It is important to note that SoftMPU can only run when EMM386 (or QEMM) is loaded. It does not work without it. | ||
+ | |||
+ | ==== Virtual CD-ROM / ISO Mounting ==== | ||
+ | |||
+ | A lot of later DOS games came on CD-ROM and it is often convenient to keep them in an ISO format on the drive (especially since I don't have a CD-ROM drive with this system!). | ||
+ | |||
+ | Fortunately there is a virtual CD-ROM driver available which can mount ISO files as a CD drive: | ||
+ | |||
+ | * http:// | ||
+ | |||
+ | Since I use a lot of games interchangeably between Dosbox and this real system, I wrote a couple of batch files which determine whether to use the Dosbox // | ||
+ | |||
+ | **Isomount.bat** | ||
+ | < | ||
+ | @ECHO OFF | ||
+ | SET ISODIR=D: | ||
+ | SET ISODRIVE=E | ||
+ | SET DOSBOXDRIVE=Z: | ||
+ | SET SHSPATH=C: | ||
+ | |||
+ | IF EXIST %ISODIR%\%1 GOTO CHECKBOX | ||
+ | GOTO MISSING | ||
+ | |||
+ | :CHECKBOX | ||
+ | REM -= Mount an ISO =- | ||
+ | @echo Mounting ISO file %ISODIR%\%1 as %ISODRIVE% | ||
+ | IF EXIST %DOSBOXDRIVE%\COMMAND.COM GOTO DOSBOX | ||
+ | GOTO REALBOX | ||
+ | |||
+ | :REALBOX | ||
+ | REM -= Mount an ISO using shsucdhd/ | ||
+ | @echo Calling SHSUCDHD | ||
+ | %SHSPATH%\SHSUCDHD / | ||
+ | @echo Calling SHSUCDX | ||
+ | %SHSPATH%\SHSUCDX / | ||
+ | GOTO END | ||
+ | |||
+ | :DOSBOX | ||
+ | REM -= Mount an ISO using Dosbox imgmount =- | ||
+ | REM @echo Calling Dosbox imgmount | ||
+ | %DOSBOXDRIVE%\imgmount %ISODRIVE%: %ISODIR%\%1 -t iso -fs iso | ||
+ | GOTO END | ||
+ | |||
+ | :MISSING | ||
+ | REM -= ISO is missing =- | ||
+ | @echo Warning! The source ISO %ISODIR%\%1 is missing | ||
+ | @echo =============================================== | ||
+ | @echo You must call this tool with the name of an ISO file | ||
+ | @echo which is available in %ISODIR% | ||
+ | @echo e.g. ISOMOUNT.BAT TENTACLE.ISO | ||
+ | GOTO END | ||
+ | |||
+ | :END | ||
+ | REM -= End of ISO mount wrapper =- | ||
+ | </ | ||
+ | |||
+ | **Isoumnt.bat** | ||
+ | < | ||
+ | @ECHO OFF | ||
+ | SET ISODIR=D: | ||
+ | SET ISODRIVE=E | ||
+ | SET DOSBOXDRIVE=Z: | ||
+ | SET SHSPATH=C: | ||
+ | |||
+ | :CHECKBOX | ||
+ | REM -= Unmount an ISO =- | ||
+ | @echo Unmounting ISO file on %ISODRIVE% | ||
+ | IF EXIST %DOSBOXDRIVE%\COMMAND.COM GOTO DOSBOX | ||
+ | GOTO REALBOX | ||
+ | |||
+ | :REALBOX | ||
+ | REM -= Unmount an ISO using shsucdhd/ | ||
+ | @echo Calling SHSUCDHD to unload | ||
+ | %SHSPATH%\SHSUCDHD /U /Q | ||
+ | @echo Calling SHSUCDX to unload | ||
+ | %SHSPATH%\SHSUCDX /U /Q | ||
+ | GOTO END | ||
+ | |||
+ | :DOSBOX | ||
+ | REM -= Unmount an ISO using Dosbox imgmount =- | ||
+ | @echo Calling Dosbox imgmount to unload | ||
+ | %DOSBOXDRIVE%\imgmount -u %ISODRIVE%: | ||
+ | GOTO END | ||
+ | |||
+ | :END | ||
+ | REM -= End of ISO mount wrapper =- | ||
+ | </ | ||
+ | |||
+ | It assumes all of your ISO image files are stored in **D:\ISO** (adjust the file to suit if otherwise). You call the batch file as follows: | ||
+ | |||
+ | < | ||
+ | ISOMOUNT.BAT GAME.ISO | ||
+ | </ | ||
+ | |||
+ | ... and to unmount the drive and free up memory: | ||
+ | |||
+ | < | ||
+ | ISOUMNT.BAT | ||
+ | </ | ||
+ | |||
+ | Since it is mounting ISO image files, CD audio is //not// supported. That isn't a huge issue in //most// cases when games have alternative soundtracks. Though be warned - some later CD titles //only// have CD audio music. I have highlighted any of these in my game testing below. | ||
+ | ==== Game Testing ===== | ||
+ | |||
+ | ==== Video BIOS Bugs ==== | ||
The C&T 65550 VESA Local Bus VGA that is embedded in the 486 single board computer is a later video card with a VESA 2.0 BIOS and unfortunately has had the 8x14 VGA font removed. | The C&T 65550 VESA Local Bus VGA that is embedded in the 486 single board computer is a later video card with a VESA 2.0 BIOS and unfortunately has had the 8x14 VGA font removed. | ||
Line 224: | Line 449: | ||
{{: | {{: | ||
+ | |||
+ | ===== Sound Card Testing ===== | ||
+ | |||
+ | Whilst the ESS1868 soundcard worked in most titles, there was a reasonable number where the game simply wouldn' | ||
+ | |||
+ | I tried several more sound cards, the results of which can be seen below: | ||
+ | |||
+ | ^ Image | {{: | ||
+ | ^ Model | Board is labelled as ' | ||
+ | ^ Chip | **ESS-1868F** (line-out only) | **ESS-1868F** (with stereo amp IC) | **YMF-719E-S** | ||
+ | ^ General Features | ||
+ | ^ Good Points | ||
+ | ^ Bad Points | ||
+ | | ^ Games working / non-working | ||
+ | ^ Adlib games | 27 / 2 | 27 / 2 | | ||
+ | ^ Soundblaster 1.0/2.0 games | 82 / 6 | 82 / 6 | | ||
+ | ^ Soundblaster Pro games | 55 / 2 | 55 / 2 | | ||
+ | ^ MIDI (GM) games | 42 / 9 | 42 / 9 | | ||
+ | ^ MIDI (MT-32) games | 75 / 14 | 75 / 14 | ||
+ | |||
+ | For the purposes of testing, I counted games as //working// if the game started and was playable and made recognisable sounds and music using the configured audio device. If the audio was noisy, crackly, or clicked, but was still producing the overall sound which was intended, then it was considered // | ||
+ | |||
+ | In addition, regardless of sound card, the following games won't work with SoftMPU: | ||
+ | |||
+ | * Gateway | ||
+ | * Gateway II - Homeworld | ||
+ | * Superhero League of Hoboken | ||
+ | |||
+ | The following games don't produce any digital audio: | ||
+ | |||
+ | * Wing Commander Privateer | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Benchmarks ===== | ||
+ | |||
+ | No retro PC build is complete without a suite of benchmarks, and here they are below. | ||
+ | |||
+ | ==== Configuration 1 ==== | ||
+ | |||
+ | * Am5x86 133MHz, 16KB WB L1 cache (4 x 33MHz) | ||
+ | * 128KB WB L2 cache | ||
+ | * BIOS options as below: | ||
+ | |||
+ | |||
+ | ==== Configuration 2 ==== | ||
+ | |||
+ | * Cyrix 5x86 100MHz, 16KB WB L1 cache (3 x 33MHz) | ||
+ | * 128KB WB L2 cache | ||
+ | * BIOS options as above | ||
+ | * No Cyrix optimisations enabled (out of box configuration) | ||
+ | |||
+ | ==== Configuration 3 ==== | ||
+ | |||
+ | * Cyrix 5x86 100MHz, 16KB WB L1 cache (3 x 33MHz) | ||
+ | * BIOS options as above | ||
+ | * Cyrix optimisations enabled: //5x86.exe /btb_en=on /rtsk_en=on /lsser=off / | ||
+ | |||
+ | ==== Configuration 4 ==== | ||
+ | |||
+ | * Cyrix 5x86 120MHz, 16KB WB L1 cache (3 x 40MHz) | ||
+ | * Overclocked | ||
+ | * BIOS options as above | ||
+ | * Cyrix optimisations not enabled (out of box oncifiguration) | ||
+ | |||
+ | ==== Configuration 5 ==== | ||
+ | |||
+ | * Cyrix 5x86 120MHz, 16KB WB L1 cache (3 x 40MHz) | ||
+ | * Overclocked | ||
+ | * BIOS options as above | ||
+ | * Cyrix optimisations enabled: //5x86.exe /btb_en=on /rtsk_en=on /lsser=off / | ||
+ | |||
+ | |||
+ | ==== Results ==== | ||
+ | |||
+ | ^ | ||
+ | | | ||
+ | | | ||
+ | ^ Test ^ Metric | ||
+ | ^ Norton | ||
+ | ^ Comptest | ||
+ | ^ Comptest | ||
+ | ^ Comptest | ||
+ | ^ Comptest | ||
+ | ^ Comptest | ||
+ | ^ Comptest | ||
+ | ^ Comptest | ||
+ | ^ Landmark | ||
+ | ^ Landmark | ||
+ | ^ Landmark | ||
+ | ^ Speedsys | ||
+ | ^ Speedsys | ||
+ | ^ Speedsys | ||
+ | ^ Speedsys | ||
+ | ^ Speedsys | ||
+ | ^ Wolfenstein 3D ^ FPS | 81.5 fps | 82.1 fps | 82.3 fps | 90.9 fps | 91.4 fps | | ||
+ | ^ DOOM ^ Low Detail | ||
+ | ^ DOOM ^ High Detail | ||
+ | ^ Quake ^ 320x240 | ||
+ | ^ Quake ^ 360x480 | ||
+ | ^ Quake ^ 640x480 | ||
+ | ^ 3D Bench ^ 1.0c | 67.3 fps | 65.5 fps | 67.7 fps | 69.7 fps | 71.8 fps | | ||
+ | ^ PC Player | ||
+ | ^ PC Player | ||
+ | |||
+ | * Doom FPS is calculated as: (35*2134) / // | ||
+ | |||
+ | It appears that the Cyrix chip running in 40MHz bus mode is a really strong performer; outclassing the Am5x86 despite the higher clock speed of the AMD processor. Even at 100MHz (3x 33MHz), the lower clocked Cyrix processor is within 10% of the performance of the AMD. | ||
+ | |||
+ | The performance differential isn't too surprising considering the AMD is effectively a clock-quadrupled 486DX, whereas the Cyrix design is a cut-down and backported core from the much-maligned (but actually very impressive, if you discount the FPU) Cyrix 6x86, so it's much closer to a Pentium class processor than the AMD. |