Hi Jim, virtual computer users,
>> http://wiki.freedos.org/wiki/index.php/Hardware_compatibility How about adding advice about specific hardware to that? Some examples: JEMM386 and JEMMEX may need options NOPGE, NOVME or NOINVLPG or for buggy versions of Qemu, Bochs, VirtualBox, VMware or VirtualPC and for 2017 Ryzen CPU: Those have VME, but it is buggy, so JEMM... would try to use it. Also, avoid I=TEST unless you know it works. You may have to use X2MAX=32767 or EMX options of JEMM... for some games or manually override the A20METHOD if necessary. For some PCI sound blaster variant drivers, the SB JEMM... option will be needed. The A20 method overrides also apply to HIMEM and similar drivers. With HIMEMX, use /X2MAX32 to limit XMS 2.0 to 32767k for old games. For UHDD (and the older UIDE) you can use /E to disable UDMA and use slow BIOS I/O for all disks: Some versions of VirtualBox and mainboards older than 1995 may need this. On modern boards, you can use /O to overlap disk I/O with XMS access, but try whether it works before using it. For some old games, the /R15 or /R63 options for UHDD may be beeded to keep the first 16 or 64 MB of RAM free for the games, if they cannot access higher addresses. For old systems with broken DRQ, the /Q option might be useful. For UDVD2, very few old LiteON drives report UDMA, but not support it properly: Use the /UX option for those. Do not use it by default, it drastically reduces speed! All sorts of sound hardware have all sorts of special tricks needed at boot to get them work as intended. In particular, PCI ones are evil and may only fully work on mainboards which support DDMA. Any hardware Adlib / OPL3 FM emulation may work nevertheless. See above for software emulations: Special JEMM... options may be necessary and various games may be incompatible. For playing CD audio, some wiring between CD/DVD drive and mainboard/soundcard will be needed and special mixer volume control and driver settings will apply. Windows 3.x must be run in standard mode, not 386enh mode, but in DOSEMU2, 386enh mode and Windows for Workgroups "non-safe" mode may work with some effort. Complicated topic, see tutorials etc. I guess DPMIONE or similar could help you to run 386enh mode, too? And of course you can use Japheth's HX RT and HX GUI to directly run older or simpler Windows apps in DOS without any Windows :-) Another relevant thing is: ALWAYS load XMS/HMA drivers if you can, HIMEM family, XMGR or, if your CPU is 286, at least FDXMS286. All is better than nothing and DOS=HIGH and FreeCOM command.com with XMS swap make a huge difference for having more of your 640k low DOS memory free. If you cannot load such drivers, consider using a KSSF disk-swapping version of FreeCOM instead of default XMS-swap. In general, avoiding JEMM... or EMM386 can avoid problems, both with buggy hardware/BIOS and with buggy or old games, but you cannot load things to UMB without that unless you use UMBPCI and UMBPCI has limited compatibility itself (test before use!). One trick to get more free RAM is to use DEVLOAD to load UDVD2 and UHDD with their /H options to let them use HMA instead of UMB. I am sure that I have forgotten MANY compatibility tricks here, but I would like to hear from all you "virtual computer" users out there which of the abovementioned suspected incompatibilities with Bochs, QEMU, VirtualBox, Virtual PC, VMware etc. actually still apply to the CURRENT versions of those :-) Maybe somebody can add a more structured version of the above to the compatibility wiki page. I will not, I can only give you this dump of ideas from my memory and from various readme files here ;-) Thanks for reviewing! Eric PS: Interestingly, the PCEM UDVD2 combination find the track count, but not track lengths for audio CD, due to some PCEM compatibility issue, so only SIMPLE audio CD players will work, not normal ones, as the latter think that no non-empty audio tracks would exist. _______________________________________________ Freedos-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freedos-user
