I have a few doubts and issues with this particular setup.
I am running a compiled dosbox-x with ne2000 fixed (internet works when wired to ethernet, thanks) and using a disk image to run Windows For Workgroups 3.11 and MSDOS 6.22.
When I boot, I see two error messages. First is related to the sound. Second is related to the CDROM - I am not mounting any image, so this is probably why dosbox-x can't mount the drive. It can't be mounted empty? I am at work right now so I don't have a handy iso image to test it.
This issue is not a "show-stopper", the screenshots might give this impression. The boot process ends fine, gives me the prompt. But these messages might be something to be fixed.
Also, when I boot, I am presented with a choice. Is there any way to boot straight to my image instead of giving me this choice?
Do I have to add something into my dosbox.conf or what to fix at least the sound issue? The sound works OK, but the message on boot suggests something might be wrong.


It looks like the boot menu is displayed by MS-DOS, not by DOSBox-X.
The DOSBox SVN architecture that DOSBox-X inherited to build on for CD-ROM emulation isn't very friendly to the idea of an empty CD-ROM drive. It works best when there's a CD in the drive at BOOT time.
For the "Cannot detect the CSP" issue, locate the [sblaster] section of your dosbox.conf and "enable asp=true"
The sblaster fix worked wonders, thanks!!
CDROM, I understand your explanation. That's OK for me. Maybe it was because I was too used to Boxer app (Dosbox's frontend GUI) which allowed me to swap CD's on the fly.
NE2000 works wonders when I use the wired connection (en0). Does not work when I try to use the wifi (en1 on my hackintosh, en4 on office's macbook). Okay, no problem. I don't remember to have used internet when I had WFW311, only W95. But when I am wired, it's fun to see what can be done.
I wonder if I can access a share on my home network - we have an apple time capsule. Would be great to get the downloaded files for the system instead of mounting and unmounting the disk image for that.
As for the boot menu... I don't think that I have some sort of boot menu configured in config.sys?
Here is the content of my config.sys and autoexec.bat:
config.sys
DEVICE=C:\MSDOS\SETVER.EXE
DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF
DOS=HIGH
COUNTRY=055,,C:\MSDOS\COUNTRY.SYS
DEVICE=C:\MSDOS\DISPLAY.SYS CON=(EGA,,1)
FILES=40
STACKS=12,512
LASTDRIVE=Z
DEVICE=C:\SB16\DRV\CSP.SYS /UNIT=0 /BLASTER=A:220
DEVICEHIGH=CD1.SYS /D:MSCD001
DEVICE=C:\WINDOWS\SMARTDRV.EXE /DOUBLE_BUFFER
DEVICE=C:\WINDOWS\IFSHLP.SYS
autoexec.bat
C:\WINDOWS\net start
set ieppp=C:\MSIE50
set pctcp=C:\MSIE50\pctcp.shv
SET SOUND=C:\SB16
SET BLASTER=A220 I7 D1 H5 P330 T6
SET MIDI=SYNTH:1 MAP:E
C:\SB16\DIAGNOSE /S
C:\SB16\MIXERSET /P /Q
@ECHO OFF
C:\
C:\MSDOS\DOSIDLE.EXE
SET PATH=C:\MSIE50;C:\WINDOWS;C:\MSDOS;C:\;%PATH%
C:\MSDOS\DOSKEY.COM
SET TEMP=C:\WINDOWS\TEMP
C:\WINDOWS\SMARTDRV.EXE /L
REM C:\NET\NE2000.COM 0x60 3
NE2000 emulation in general doesn't seem to work with wireless 802.11, not even on my Linux dev system here.
NE2000 emulation in general doesn't seem to work with wireless 802.11, not even on my Linux dev system here.
It's a pity, I wish there was a way to work with wifi. I might just give up with networking on WFWG 3.11.
@brunocastello It might work on your system if you let WfW talk to localhost to another DOSBox instance.
It looks like the boot menu is displayed by MS-DOS, not by DOSBox-X.
Hi, how you doing? I came back because I wanted to ask two questions, first, do you have any idea of how can I get rid of this boot menu?
Second, does the binaries released already have NE2000 support or I still have to compile myself one with NE2000? Because I still remember how to compile for macOS, but for Windows I have no idea at all. I wanted to work around the limitation (no wifi support) using it inside a Windows 10 Parallels VM, where it could be seen as an ethernet connection always. Its a bit of an overkill, I admit it, but the trick actually works (I remember it does, because I did it with a Linux VM years ago and it worked).
And it’s not a question, but I came back because I was interested in doing a Windows 98 VM for a few 3DFx/Glide games (FIFA 98, FIFA 99, NFS II SE...), since Virtualbox and VMware weren’t cutting it for me unless I used a XP VM (which I refuse to do, because I despise XP and later Windows).
config.h in vs2015/ defines C_NE2000, which should enable NE2000 emulation.
DOSBox-X does not provide that boot menu, that is in the MBR. Did you make the image using IMGMAKE? IMGMAKE appears to install that boot menu.
You might be able to replace that with the standard MBR using FDISK /mbr within MS-DOS.
Hmmmm, so I still have to compile? that’s ok.
As for the boot menu, I used one of those ready disk images floating around the web; was a 2GB or 1GB hard disk, I cannot remember now because I haven’t fired it up for months, plus I am not on my mac atm. But I will check later when I wake up and try out the fdisk command you mentioned, thanks! As always, you do an excellent work with your version.
I am extremely disappointed with the bad sb16 emu on virtualbox/parallels and bad 3d options for vmware, so I turned to PCem, Qemu, and DOSBox to find out an alternative to keep my Win 3.1 / Win 9x VMs useful. PCem works but is too demanding, sound stutters. Qemu I am yet to try with a 3dfx patch but I’d need a linux VM to compile and run; so DOSBox-x on my mac is actually the best option available. Can’t believe I took weeks of experiments, trial and error to come to this conclusion.
What I mean is that config.h defines what is enabled when compiled in VS2019, and therefore what the binaries posted are configured to emulate.
The default windows build should have NE2000 support. It did for me. Please have a look at this draft guide on how to set things up:
https://github.com/Wengier/dosbox-x-wiki/wiki/Guide%3ASetting-up-networking-in-DOSBox%E2%80%90X
I can also confirm that running fdisk /mbr when you have booted your disk image in DOSBox-X it will no longer show the boot menu.
Thanks, guys! I’ll catch up when I can, I just woke up but I have some home office stuff to do first.
I can also confirm fdisk /mbr worked wonders. Thank you. I will now proceed to try and create another hard disk image for my Win98 games. My Win31 image is working perfectly. If everything goes well, I might just kick VMware out of my mac. Having two Win31 and Win98 images is the perfect thing to relive my childhood days.
There is a draft guide here for Win98: https://github.com/Wengier/dosbox-x-wiki/wiki/Guide%3AInstalling-Windows-98
However, it is written for the development version of DOSBox-X which has several updates for mounting and FAT32 which are already included in that guide.
Sure, I can try it out too - First I am reading carefully through my 2 configuration files for my Win31, which are aimed for speeds closer to 486 and Pentium, because I have a few DOS games in this image that require a bit more of "power" (for example, Grand Prix 2 is perfect with my pentium config, but not so good with a 486 config; while Grand Prix 1 is the opposite). I want to make sure all is OK (I haven't been using DOSBox for months) before proceeding to creating a new image and configuration file (pretty sure it will use pentium_mmx along with other cfg tweaks) for Win98. Which branch is the development version?
@brunocastello The development version means the latest code in the repository, which will become the next official version (0.83.2) in a few days. You can either build the latest code youself, or if you prefer you can wait for a few days and then get the official builds.
Thanks again - I might have a go with building the latest so I can have a head start on the guide before the official build gets released. Problem is, I think that based on the games I want to install, I'll probably need an 8GB harddisk image. (FS98, FIFA98, FIFA99, GP3, NFS2SE...)
I was reading the guide and noticed that the unofficial service pack for windows 98 wasn't mentioned. Although its unofficial, it seems to be popular among some win 98 enthusiasts, because it packs all the main updates into one. Any reason in particular for not suggesting it? Bugs?
Right now I started the install. But after successfully (it seems so) formatting an 8GB hard drive, when I get to the Windows 98 setup first screen, I notice that the mouse is not working. Autolock was set to on before the boot. I could probably continue the install without the mouse, but it will be a bit painful to navigate through. I did not change any mouse setting compared to my Win3.1 install, which works wonders. Ideas?
EDIT: Fixed it. had to enable integration device in config settings.
OK, now after two BSODs and two Protection errors, I managed to see the login screen. But When it starts detecting the devices, the funny part; It does not see the win 98 cd-rom which I used to install the devices (???) in order to get the drivers needed. Well, a dirty start...
Do not run Windows 9x/ME with core=dynamic. You must use core=normal.
Make sure the IMGMOUNT command for the ISO specifies an IDE controller and master/slave to attach to. I recommend -ide 2m
Do not run Windows 9x/ME with core=dynamic. You must use core=normal.
Make sure the IMGMOUNT command for the ISO specifies an IDE controller and master/slave to attach to. I recommend -ide 2m
I was on core=normal. The only thing I changed was your suggestion to mount the cd iso as an ide controller, it worked. I finally got to the desktop; But the SB16 detection kinda failed (yellow exclamation mark), no network card was detected (I'm on it, there's instructions for that on the guide) and there's a new mouse problem... the double click to open isn't working (but the 2nd button and the one click button is). I am using a 1st gen apple magic mouse instead of the trackpad of my macbook pro (I'm working in clamshell mode, connected to a HDMI samsung monitor, just to give the context of how I am working here). I need to fix the mouse double click now
For sound I think that I just need to enable networking so I can download the sound drivers from one of my local home servers. The guide has one, which I will download and save here. I will just continue for more 30 minutes before I go to sleep (I'm already falling asleep infront)
To the sblaster section, add "enable asp=true"
To the sblaster section, add "enable asp=true"
Also had it before too. Right, I just did the detection again, and it not only found again the same SB16 device, also reinstalled the drivers. one of the BSODs must've caused the issue. Now the sound is working (although sometimes I get it stuttering).
Now I have to find out why the NE2000 isn't being detected. I am using a similar configuration file I use for Win31, but modified according to the guide for win 98. NE2000 is enabled and set up properly per configuration, but Windows 98 is not finding it. Probably because I just modified one line in ne2000.cpp to make it work for mac like I did before to have it working for Win3.1 in previous dosbox-x builds. I've set it to IRQ 10, yet Windows 98 can't find it. I'll probably just recompile the dosbox-x app without my modification to see if it was the cause. I'll try again with the console enabled to see if dosbox-x is finding en4 (which is my ethernet usb adapter, the same that worked with Win31)
Hurrah! I finally managed it. I dunno why, how and what caused it, but I repeated every step and this time I had to manually detect it using the device manager. It then found the NE2000 device. Time to configure the networking.
My last step before proceeding to updating and installing the games is to find a way to set up a larger screen resolution. I need 1280x720, 1366x768 or 1920x1080, one of these three will suffice for me. But how? They aren't available...
EDIT 1: sound is still stuttering, I suspect it has to do with the cycles. I have cycles=60000, cputype=pentium_mmx.
Enough for me today. Tomorrow I will look for a way to get the desired screen resolution. So far the VM is working. Similar speeds to PCem/Qemu instances...
@brunocastello The SB16 detection in Win9x is flaky, sometimes it finds it, other times it does not. Most likely because it is a legacy ISA device, with no ISA PnP. With the irq=5 setting in the config, I found the detection pretty reliable. With default (irq=7), it will not find it roughly 50% of the time. It even detected it once during install for me as an "Adlib Gold".
Please use the provided config on the Guide page, the settings are necessary. I suggest using that and only adding options when needed.
NE2000 is almost never auto detected. it requires a separate scan as mentioned on the guide. And if it finds it, it tries to use IRQ3 which will not work and conflict with COM2.
I have done dozens of installs of Win9x versions, and have not had any mouse problem, BSOD, or yellow exclamation mark (other then the 3dfx voodoo with Win95 due to missing driver).
About the mouse click problems. Are you sure you don't have Turbo mode enabled when you have that problem? Because Turbo mode will cause double click not to function as the time in the emulator is going faster then real-time, and so the double click timing is too fast.
But I have been using the latest Linux builds that I do myself, not an older MacOS build, which may also contribute to some differences.
Hi! I used your config settings with mine, followed your guide too. No problems. BSOD and other issues might have been caused because I did not set the hard disk the way jon described; once I did it, things were stable.
SB16 got recognized manually after some attempts and is working. It also was set to IRQ5. Sound has some stuttering when starting and exiting windows, but I haven’t tested usage (I did test in Control Panel where you choose a sound scheme; the same two sounds were played perfectly there). So I suspect the stuttering might have something to do with the cycles, because hours ago I was testing my Win31 VM with Grand Prix 2 and 1. GP1 had sound stuttering ingame when used pentium+cycles fixed 281000; but were perfect when used 486+cycles 24000. While GP2 was only playable with the pentium setting described above. That led me to think that the stuttering has to do with the cycles in Win98 VM.
NE2000 only works on my mac when I change one line in ne2000.cpp (I had mentioned that line before here or in another issue topic). No description is given to the en4 (the selected adapter, which corresponds to my ethernet adapter). But I was assured by the guy on VOGONS that the trick actually works; so I went for en4. Meanwhile, I had to change NE2000 to IRQ3, and disable COM2 (serial=disabled). Then I had to detect manually like I did with SB16. Now I have sound and networking, which is great now.
3dfx was configured out of the box, but I haven’t tested any game yet. As for the mouse, you were right - I forgot I had Turbo enabled to complete the install faster. Mouse now is OK.
I used the latest build. It does compile OK, but in the end when I make the dosbox-x.app, it throws an error about dylib, but still creates the application and runs as expected. I’m using a Late 2013 rMBP 13-inch, i7, 16GB, 1TB SSD, and latest macOS Catalina.
To overcome the need for wifi connection, I’m thinking about using a Parallels linux or Windows 10 vm running the official dosbox-x build later. These VMs can emulate an ethernet adapter and I know it will work because I did it before with older builds. A bit of an overkill, but I do need a W10 or Linux VM for other purposes anyway.
Now, before I proceed to installing apps and games, I just need to set up a wider resolution, but they aren’t available yet; I need one of these three: 1280x720, 1366x768 or 1920x1080. I work in widescreen resolutions and having two black bars on my monitor isn’t nice, but...
@brunocastello
Regarding the need for a wired Ethernet, that is something I thought about. But instead of running DOSBox-X inside a VM, which just increases overhead, I thought of using libvirt networking. You use libvirt to create a virtual network to which you connect DOSBox-X, then you connect that virtual network to your Wifi adapter using NAT. This will allow outbound originating connections. Inbound originating connections would require additional work, as you need to setup something like port-forwarding to get that working.
I know that can work, but I have yet to set it up. libvirt is available for Linux, Windows and MacOS, so it could be a good solution.
Just to clarify, the Win98 driver appears to test whether the SB16 DSP commands related to the ASP/CSP work, and bails if not. Obviously anything past the early 90s cards do not have the ASP, so only a subset should work. The question is which ones. I thought I had that right, but not good enough yet for Win98.
I suggest using the VBEMP drivers, which have excellent support for Windows 95/98/ME. They use the VESA BIOS extensions to provide SVGA graphics for Windows. https://bearwindows.zcm.com.au/vbe9x.htm . They work fine with DOSBox-X's VESA BIOS emulation.
As for NE2000, what happens on my tests is that during phase 2 or 3 (before the final desktop) Windows pops up a configuration dialog box to set the I/O base and IRQ resources for the NE2000 card. It always gets the IRQ wrong (3) and needs correction. After that it works fine, and it's just a matter of configuring dosbox.conf to talk to the right ethernet device on your system.
If you need emulation of a PnP SB16, set sbtype=sb16vibra. This configures SB16 emulation to emulate the later PnP cards that appear through ISA Plug & Play enumeration (and with a higher DSP version). That emulation is based on testing real SB16 ViBRA cards I have lying around, though unlike the real hardware, DOSBox-X still pre-configures the resources from dosbox.conf. Real ISA PnP hardware does not respond to ANY I/O ports until configured through the ISA Plug & Play protocol. Also unlike real ViBRA cards, DOSBox-X does not emulate Creative's CQM emulation of the OPL3 :)
@brunocastello
Regarding the resolutions... have a look at https://github.com/joncampbell123/dosbox-x/issues/1187
There are a few options in [dosbox] that can help a bit.
First there is vmemsize = -1 when set to -1 (auto), the emulated S3 video card has 4MB, but setting it tovmemsize=8 has no effect to the available resolutions with the S3 Win9x driver, as the driver itself seems to be limited to 4MB.
Then there is
vesa modelist width limit = 1280
vesa modelist height limit = 1024
Yes, this limits the available resolution options to 1280x1024. Setting it to 0 (meaning uncapped), allows resolutions up to 1600x1200. But no widescreen resolutions, and with only 4MB Video RAM this means the higher resolutions are 8bit (256) colour only.
There is also the options
allow high definition vesa modes = false
allow unusual vesa modes = false
But setting them to true made no difference to the available modes in Win98, most likely because the Windows 9x S3 driver has modes hard coded.
I also tried setting allow low resolution vesa modes=false
In case the vesa mode list was perhaps too full, but it made no difference either.
So the only options as I see them are;
@joncampbell123 perhaps I should change the default from sb16 to sb16vibra for the Win9x guides, such that they are detected through PnP. What do you think? Is there any disadvantage for Win9x to use the sb16vibra over the sb16? You already mentioned you don't emulate the CQM, but use OPL3 which is normally the biggest issue with a real sb16vibra.
I will also uncap the vesa modelist width/height limit and add a pointer to the VBEMP driver.
Well, I found one issue with the sb16vibra, it conflicts with the mpu401 (IO 0330-0331).
Remove the sound card and MPU-401 drivers and then let ISA PnP enumeration re-install it properly. Windows 95/98 device management is easily confused when a non-PnP device becomes a PnP device.
Deleting the mpu401 in Win98 indeed clears it up, and MIDI emulation (fluidsynth) still works once you set the correct MIDI output in the windows settings.
Another issue I ran into (tested with both Win95 RTM and Win95 OSR2.5, even tried a clean install), is that it does not like the default IRQ7, need to set IRQ=5 or you get a resource conflict error. I did not have this issue with Win98SE.
I have updated the Win9x guides to sbtype=sb16vibra, and also added notes on optionally installing VMEMP.
VMEMP, not surprisingly, does have a performance impact. I did not try it in games, but in the graphics benchmark of WinBench96 there was a negative performance impact of between 0 and 59% (at the same resolution and colour depth) depending on the benchmark.

Have you tried Scitech Display Doctor 7 Beta? VirtualBox users have had a considerable success with that thing, because it also has a driver. I tried that on VMware but I couldn't replicate the same success, because with my VMware Win98 VM I was always having a crash when I shutdown the machine. I haven't tried on DOSBox yet.
@brunocastello I did not, but I don't expect much difference with VMEMP from a performance perspective. The problem with using VESA is that you basically loose all acceleration features that the native driver is able to provide.
Basically if you want to play games, unless they are (graphically) very simple games, your probably better using the S3 driver.
There is a (dated) experimental S3 Virge patch for DOSBox-X, which replaces the S3 Trio64 (86C764) with the S3 Virge (86C325).
The S3 Trio64 came out in 1994, while the S3 Virge came out in 1996. But both appear to have been released with up to 4MB of video memory, so no change on that front.
The Virge should have some basic 3D acceleration, but since it came out in 1996 it will not be supported out-of-the-box with Windows 95.
Actually, if you look at PCem, they use the combo S3 Virge + Voodoo 2 with some success. I saw a tutorial on how to use PCem to create a Win 98 VM and they use the most powerful hardware possible there for a mid 90's pc. They can even use Voodoo 2 in SLI. I tried PCem a few days ago, installation, configuration, was pretty straightforward, no issues except for a sound stuttering, but it was caused by the emulation speed, if it dropped below 90% the sound would start lagging a lot, so I dropped PCem. But the video was working as expected. So I think that the S3 Virge is worth a test case here.
There is an thread about the S3 Virge patch here: https://github.com/joncampbell123/dosbox-x/issues/167 but the author seems to have gone AWOL. In any case, reading the last messages, it seems it still needed some polish.
Wait, according to Wikipedia, S3 ViRGE was introduced in 1995. And also in this page, it says that this does have drivers for W95. I did a quick search and found some on vogonsdrivers.
I could try the patch if I were instructed on how to patch it; BUT if there is an easier way to get my desired resolution and keep 3dfx/glide support for games such as FIFA 99 running better, I'm all for it.
EDIT: Just noticed it. I am unable to run the VM in full screen? I'm windowed at 1280x1024x16.
Scitech Display Doctor 7.0 beta made absolutely no difference and did not show me any additional resolutions, so it's a dead end. VBEMP didn't yielded better results for me either; I could choose 1280x800 which was closest thing to what I wanted but still not there. I could accept 1280x720 in full screen mode if there was that option.
I think that our best option is a S3 ViRGE patch...
@brunocastello As I mentioned, I have updated the Guide. which consists of updates to the default template and the addition of a section specific to VBEMP. I think you did not apply the updates to the default config template, which is why you cannot use higher resolutions.
In particular it sounds like you did not add these lines as mentioned in the wiki:
vesa modelist width limit=0
vesa modelist height limit=0
I was able to use 1920x1440
And S3 Virge is unlikely to help with additional resolutions. Just like S3 Trio64 it was only available with up to 4MB RAM, so it will have the same resolutions with the S3 driver.
The only advantage the S3 Virge has, is the S3D extensions which a few games support.
@brunocastello As I mentioned, I have updated the Guide. which consists of updates to the default template and the addition of a section specific to VBEMP. I think you did not apply the updates to the default config template, which is why you cannot use higher resolutions.
In particular it sounds like you did not add these lines as mentioned in the wiki:
vesa modelist width limit=0 vesa modelist height limit=0I was able to use 1920x1440
And S3 Virge is unlikely to help with additional resolutions. Just like S3 Trio64 it was only available with up to 4MB RAM, so it will have the same resolutions with the S3 driver.
The only advantage the S3 Virge has, is the S3D extensions which a few games support.
I meant 1920x1080, but I will check your updated guide again later. Anything between 1280x720, 1366x768, 1680x1050 and 1920x1080 will keep me happy. I'll probably look after 1280x720 or 1366x768, since I have a 13 inch screen on my rMBP and I don't like very small typography.
And we're at it, why are we limited to the windowed mode in DOSBox?
Mac OS X builds of DOSBox-X should be able to go fullscreen, though SDL1 vs SDL2 use different techniques to do so.
Mac OS X builds of DOSBox-X should be able to go fullscreen, though SDL1 vs SDL2 use different techniques to do so.
Hi, I tried, but my build doesn’t go full screen, just windowed. The menu options to go full screen do not respond.
Btw, I fixed the stuttering sound on startup with a smaller cycles value: 30000. I will be testing a bit higher values but I know it stutters from 60000 and above. I now have everything - sound, network (I have to run with sudo), and 3dfx support (I am yet to test a game, but dxdiag reports it has, although dxdiag does crash the system sometimes). I just do not have widescreen resolution like I do in VMware, but I am also yet to try out the new updated guide above. I will try to bring some news next night.
I got my desired resolution (1280x720) thanks, guys. I tried 1920x1080 and works as well too. As mentioned earlier, it's a bit slower. Maybe it can be improved with better cycles.
I will now proceed to test my games and update Windows 98 as well. I'll report back any news when possible. BTW I am not using SB16vibra, for now (laziness, as well...) I'm sticking with SB16 since it's working well anyway. Another reason, I have an app called UTM on my iPad Pro that uses Qemu to emulate some VMs and it also works well with the same image I used for my DOSBox-X Windows 3.11 VM, so I might want to do the same for that machine. Actually I have compiled an old version of DOSBox for iOS called iDOS2 (or DOSPad). However, it is too old to run any sort of Win98 VM. I wish I could update the app to run on my iPad Pro, the sources and xcode project are there on github, but I don't have the time or knowledge to work on it. For now the outdated iDOS2 app runs on my iPad only the Win 3.11 VM, without networking.
First games to be tested now with the very appreciated DOSBOX-X tonight will be FIFA 98, GP3, FIFA 99 and FS98, as well as Championship Manager 3.
EDIT: haven't tested again yet if it will allow me to go full screen. for now I am doing it all windowed.
The unofficial 98se sp3 breaks it on DOSBOX-X while they work fine on VMWare. Mainly because Main Updates/Core Updates option when ticked installs a bunch of unofficial tweaks/patches along with official tweaks/patches. For example, later operating systems files such as 2K/XP are added. Some will break the system. So thankfully I had a backup, restarted it and this time I am trying to select official ones from the package. I will try to get the official hotfixes later from somewhere. The key is probably a 100% vanilla install in order to have everything working.
EDIT: I managed to update the system, installing one update and rebooting per time. Incredibly painful. Ironically, after updating the system and getting the drivers in place, the system became amazingly slower.
@brunocastello I never tried the unofficial SP3, but have heard it mentioned that it can also break real systems, and some people on Vogons say not to use it. In any case, if this was meant to be a bug report, it does not contain enough detail. Also this bug report was started about a different setup and this would need a new separate bug report.
Hi! I just came back to say that I will give another shot at running Win 98 on it and also wanted to warn some github devs of mac apps about a potential big problem with a malware that can affect some xcode projects on github. Read here: https://www.macrumors.com/2020/08/24/xcode-malware-infiltrate-app-store/
@brunocastello
Regarding the need for a wired Ethernet, that is something I thought about. But instead of running DOSBox-X inside a VM, which just increases overhead, I thought of using libvirt networking. You use libvirt to create a virtual network to which you connect DOSBox-X, then you connect that virtual network to your Wifi adapter using NAT. This will allow outbound originating connections. Inbound originating connections would require additional work, as you need to setup something like port-forwarding to get that working.
I know that can work, but I have yet to set it up. libvirt is available for Linux, Windows and MacOS, so it could be a good solution.
Have you managed to do it?
@brunocastello No, I have not even thought about it recently. Had other things on my mind ;-)
Oh, I see. I guess that I will have to do my research about the subject.
I'm having an issue with my Windows 98 machine on latest dosbox-x. First install attempt I could see the cd-rom after installing the OS and reaching the desktop. But from second attempt onwards I never saw it again there. Am I missing something? I'm using the same config as provided by the Win 98 install guide.
As long as your config has a line in it in the [autoexec] section with IMGMOUNT where your mounting a ISO or CUE file, before the BOOT command, you should get that CD in Win98. Unless you deleted, moved or renamed the ISO or CUE file obviously.
e.g.
IMGMOUNT D win98.iso
As long as your config has a line in it in the [autoexec] section with IMGMOUNT where your mounting a ISO or CUE file, before the BOOT command, you should get that CD in Win98. Unless you deleted, moved or renamed the ISO or CUE file obviously.
e.g.
IMGMOUNT D win98.iso
I did. In fact its how I could install Win 98. But what I am saying is that after installing Win 98 SE, the cd rom was bizarrely not visible anymore after I had completed the win 98 install and reached the desktop. I tried three installs: one from the drive (copying the WIN98 folder to the hdd), one booting from the CDROM and a third one booting from a floppy disk. All three ended with me not finding the cdrom drive in Windows after having installed it. So far since yesterday I did install it six times from scratch and still no cd rom drive. both cdrom boot and floppy boot methods ended with Windows asking me for the win 98 cdrom (!!!) to install device drivers before I reached the desktop. I simply could not see the drive, was not there. the install from the drive (With the win98 folder) had zero issues but still no mounted cd rom drive. even though I had booted all three with the win98 cdrom iso "inserted".
imgmount d "~/DOSBox/Disks/win98cd.iso" -t cdrom (I had even tried -t iso). It's not the location of the file for sure, because I am booting others flawlessly from the same location (dos 6.22/win 3.11 has no issues).
EDIT: That's it. Even on other machine (Dos 6.22/win 3.11) it can't even recognize the CD drive anymore, I've tested two other disc images. It used to work without problems before.
I can only see the drive when I don't boot into a guest OS.
@rderooy @joncampbell123 It's definitely a bug, in both 0.83.5 and 0.83.6 builds. Previous builds I had no problems. It has been a long time but my previous build before updating was probably 0.82.x (0.82.5?)
I am unable to see the mounted cd rom images when I boot into a guest OS. I have tried several config options for the CD-ROM to try and enable but nothing works. It was working before I had compiled a new version of dosbox-x to check if there was an improvement to run Win 98.
Scenario 1: Previously built machine with DOS 6.22 and WFW 3.11
Scenario 2: Building a Win 98 machine
It's definitely a bug. I can mount a floppy disk with the image being on the same folder as my CDROM images, but not CDROMs.
In a scenario where I do not use the boot to a guest OS image, I can mount and read these CDROM drives.
Environment: macOS Catalina 10.15.6, using both compiled and pre-compiled binaries of DosBox-X produced the same problems.
@brunocastello I just double checked it here with 0.83.5 on Linux, and I can mount a CD-ROM just fine, and the CD-ROM is available after booting into Win98SE.
Can you please give us your config file, including imgmount commands for the CD?
In any case, if your installing Win98, and you follow the Wiki step by step, it should work just fine. If your going of script you can encounter problems.
For instance, if your manually mounting a CD, not copying over the contents to the harddisk (or still running setup from the CD regardless of copy the contents), and then when it reboots it will no longer find the CD. This is normal, and the reason my method has you copy the contents and run setup from that copy. Alternatively, you can work around that by adding the imgmount command for the CD to your [autoexec] section, such that on reboot it will be mounted automatically, but even then I have run into problems where win9x cannot find the CD on the second boot, because it simply did not load the CD-ROM drivers yet.
@rderooy, my config file for the win98 instance is exactly the same as seen in the wiki (which I followed the two methods in different attempts) for installing it. The other custom one for win311 had the cdrom working flawlessly for months before the update. Now both don’t see it. I know that before the update, the cd was working after booting into win311 because I used it to install Grand Prix 2.
The imgmount commands used in my win 98 config file for mounting the CD were trivial:
Attempt 1) imgmount d “~/DOSBox/Disks/win98cd.iso” -t iso -fs iso -ide 2m
Attempt 2) imgmount d “~/DOSBox/Disks/win98cd.iso” -t cdrom
Attempt 3) imgmount d “~/DOSBox/Disks/win98cd.iso” -t iso
All three mounted the CD before the boot, all three were visible and let me install Win 98, but after booting into Win 98 to finish the install, the cd was not available anymore. The question mark here is why it does not work anymore for my win311 instance when it worked before. I could suppose that the macOS version has got some sort of bug for it. I will revert to the 0.82.x version to find it out.
EDIT: I can't understand. It has been a long time since I last used dosbox-x, but I could swear in previous versions I could load the CD-ROM in a booted guest OS, even in DOS 6.22/Win3.11 booted instance. Well, turns out that even in older builds (oldest I tried now was 0.82.15) I cannot even load any cd-rom image after the boot. I am now scratching my head...
@brunocastello So are you saying that in your old version (0.82.x) the CD does not work either now? If so, it means there must be some changes in the environments you worked on. Please check what may have changed in your environment.
Hi, no environment changes. It’s been macOS Catalina for a long time, and I haven’t changed a thing on it. SIP is disabled since the very beginning, permissions were given, gatekeeper is completely open to allow a lot of third party software to run. It has always been like that since SIP and gatekeeper were introduced years ago. Dosbox has always worked in a such environment with me. I still believe it must be a bug somewhere on it for the macOS version because I have tested both compiled (by myself) and downloaded ready/precompiled binaries from the website. I am yet to test on another mac but I have always configured the environment the same way in all macs.
That does not make sense because a) the hard disk images are on the same folder as my cd rom images and are mounted the same way, albeit with slightly different parameters:
Imgmount c “~/DOSBox/Disks/win98.img” -t hd -reservecyl 1
Imgmount d “~/DOSBox/Disks/cdrom.img” -t iso -fs iso -ide 2m
boot -l c
It’s not the environment because I am loading these images from the same place. Then why the hard disk and floppy disk images are loaded OK, but the cdrom ones aren’t? I tried several different cd images from various types (iso and img) none were seen after a win98 install.
@brunocastello In order to help isolate the issue, can you test some DOSBox-X versions (for macOS) released so far and find at least one version that still works for your case? This may help to verify if there is indeed a bug since certain DOSBox-X version. I don't use macOS so I cannot directly verify this on my own computer.
Well, I tried 0.82.5, 0.82.24, 0.82.26, 0.83.5 and 0.83.6. I'm attaching the output from console while I attempted to run a dos 6.22 / win 3.11 machine with a cd-rom attached to it with DOSBox-X 0.83.6;
@brunocastello So you mean none of these versions work for your case now? From the log file it does not seem to show anything about the CD image.
Yes, none of these versions can see the cd-rom image after booting into a guest DOS 6.22/Win 3.11 machine. I can see the dosbox message saying that both drives (hard disk and cdrom) were mounted before booting into guest OS from the hard drive image.
EDIT: And when I issue a "Dir D:", DOS 6.22 says "Invalid drive specification", meaning that when I am in a guest OS it cannot see the cdrom image.
I can't remember which version was the previous one because all my backups were updated to the latest version yesterday. At least it is a reminder for me to test everything before messing with my backups again.
Here I attached some screenshots of how it is.


@brunocastello Real DOS guest system apparently requires CD driver and MSCDEX to be loaded before it can access the CD drive (D:), and from your screenshot I cannot see anything like this being loaded. Can you check if the CD driver and MSCDEX are indeed included in your DOS system's CONFIG.SYS and AUTOEXEC.BAT files?
They are (being loaded), they've always been. The problem is not just limited to DOS 6.22 / Win 3.11 machine. It is also a problem for a Win 98 machine.


OH SH*&! Just saw right now these lines were commented (REM). But it doesn't change the fact that on Windows 98 it doesn't work either. I'll boot again the DOS 622 / Win 3.11 machine with these lines uncommented.
Right, it now works flawlessly on DOS 6.22 / Win 3.11 machine, leaving only the Win 98 machine with that problem. I might have to create a dummy cdrom image so I don't ever forget to comment/uncomment these lines again.
The win 98 problem one is a complicated one though - I am using the dosbox.cfg from the wiki to create a new Win 98 machine, I created a 16GB hard disk image (I have a lot of games to install...) for win 98 install. I booted from the cd-rom using the el torito method, installed the OS, and when I was past the Windows 98 splash screen and reaching the desktop, Windows asked for the Windows 98 cd-rom to install the drivers. It couldn't find the d: drive, so I hit cancel for all requests. Reached the desktop, clicked "My Computer" and confirmed that the cd-rom drive wasn't there really.
The install using a WIN98 folder from the hard drive had the same fate - I installed without a single problem, but when I reached the desktop, hit "My Computer", the cd-rom drive wasn't there as well, and I booted with the Win98 cd-rom attached. So Windows 98 still has a problem with the cd-rom in a guest OS.
@brunocastello Instead of booting into the Win98 graphical interface, you can first check if the CD drive works in the real DOS mode of Win98. Try to copy the CD driver (CD1.SYS) to your Win98 disk image, and then set the following:
In MSDOS.SYS:
BOOTGUI=0
Change it from "BOOTGUI=1".
In CONFIG.SYS:
DEVICEHIGH=CD1.SYS /D:MSCD001 /V
In AUTOEXEC.BAT:
LH MSCDEX.EXE /S /D:MSCD001 /L:D
If the CD drive works in DOS mode, then try start Win98 GUI and see if the CD drive is recognized there.
By the way, instead of using the command BOOT -L C, you can directly use the command BOOT C: to boot from C: drive.
@brunocastello Instead of booting into the Win98 graphical interface, you can first check if the CD drive works in the real DOS mode of Win98. Try to copy the CD driver (CD1.SYS) to your Win98 disk image, and then set the following:
In MSDOS.SYS:
BOOTGUI=0Change it from "BOOTGUI=1".
In CONFIG.SYS:
DEVICEHIGH=CD1.SYS /D:MSCD001 /VIn AUTOEXEC.BAT:
LH MSCDEX.EXE /S /D:MSCD001 /L:DIf the CD drive works in DOS mode, then try start Win98 GUI and see if the CD drive is recognized there.
By the way, instead of using the command
BOOT -L C, you can directly use the commandBOOT C:to boot from C: drive.
This approach did work (albeit with some bumps in the route) and I could see the CD-ROM in both DOS real mode and Win 98, but I lost NE2000 networking abilities now. Windows 98 couldn't even find the NE2000 network card, one of the reasons why I chose dosbox-x over the SVN version.
Network was working before when I didn't had the ability to see the CD-ROM. Before you ask, the NE2000 parameters in my dosbox-x config files are correct.
@brunocastello Did you change any other things in the route? I doubt that anything mentioned above will affect the NE2000 networking function, but just to make sure you can temporarily comment out the lines you just added and see if anything is changed. If not, then I believe it is a completely separate issue.
I finally worked around these issues. Network is now working. I was saved by this guy "palrex".
Now I can proceed to updating and fixing some other bits inside Windows 98 that does not have to do with dosbox. I can't believe it took me an entire day to get it working. I must be really tired or this COVID-19 pandemic is mentally getting the sh** out of me (thanks God, I wasn't infected so far in six months quarantined, I really hope the world can overcome this asap).
I have two things which I have no clue on how to fix:

No idea why I have two Hard Disk Controller when I have just one hard disk.
Also, no idea why APM support is marked with an yellow exclamation mark. If I wanted to use ACPI, I'd have done so by changing the ACPI settings in dosbox.conf and by installing Windows 98 from command prompt with setup /p /j.
APM shows code 10: "This device is either not present, not working properly, or does not have all the drivers installed."
Any ideas? Might be dosbox-x related.
@rderooy I have decided to reinstall from the disk using the second method and albeit with one or two bumps I've managed to fix most issues. Now I have only three issues:
1) Advanced Power Management support is showing twice on Device Manager, with an yellow exclamation mark on both;
2) Shutdown never completes (because of 1).
3) When I power on the "machine", after the W98 splash screen I am stuck with a black screen and a blinking cursor. It only boots on second attempt after a CTRL-ALT-DEL.
I fixed the IDE Hard Disk Controller issue by setting the two IDEs (HD and CDROM) the following way:
[ide, primary]
enable=true
pnp=false
int13fakeio=true
int13fakev86io=true
[ide,secondary]
enable=true
pnp=true
int13fakeio=true
int13fakev86io=true
cd-rom insertion delay=4000
The key to fix the previous issue was the lines in bold. This also fixed the CD-ROM issue we had a few posts ago.
Now I just need to fix APM but I haven't got a clue on how to do it. I tried to set the apmbios from configuration file this way but no luck.
apmbios=true
apmbios pnp=true
apmbios version=1.1
apmbios allow realmode=false
apmbios allow 16-bit protected mode=false
apmbios allow 32-bit protected mode=true
Suggestions? I can feel that I am really very close to where I want to be with this "machine".
@brunocastello Your setting options that I don't mention in the guide. And indeed checking what your doing, your setting options that you should not. In particular your setting apmbios pnp=true which you should leave disabled as per the instructions in the reference config file.
apmbios: Emulate Advanced Power Management BIOS calls
# apmbios pnp: If emulating ISA PnP BIOS, announce APM BIOS in PnP enumeration.
# Warning: this can cause Windows 95 OSR2 and later to enumerate the APM BIOS twice and cause problems.
# apmbios version: What version of the APM BIOS specification to emulate.
# You will need at least APM BIOS v1.1 for emulation to work with Windows 95/98/ME
# Possible values: auto, 1.0, 1.1, 1.2.
# apmbios allow realmode: Allow guest OS to connect from real mode.
# apmbios allow 16-bit protected mode: Allow guest OS to connect from 16-bit protected mode.
# apmbios allow 32-bit protected mode: Allow guest OS to connect from 32-bit protected mode.
Also, I don't think DOSBox-X ACPI support is implemented at this point.
I don't think I should not set certain options because some experiment with them was what fixed most of the issues I had. The CD-ROM one for example, it wasn't working with the settings from the Guide. And as soon as I did, BANG, it started working without having to edit autoexec and config files. So I left them there while I had it working. Also, the double IDE controller on device manager was also fixed that way, so far so good.
The settings I added, they were added after trying the ones from the Guide, not when I started doing it so they aren't the culprit for the issues I was having. Actually, all my issues on win98 device manager except APM were fixed by doing what I did. However, after being installed, Windows 98 still does not start on first boot (blinking cursor) only on reboot, and doesn't shutdown properly either (does not show the screen saying that its safe to shutdown). Doesn't matter if I am using the settings from the guide or not, it happens all the time, so it's not my fault too. I'm guessing it has to do with APM.
As for "apmbios pnp" though, yea you're right there. However, even if I set it as false, APM in Windows 98 still sometimes work and sometimes doesn't from one session to another. I decided to leave that machine aside for a while, and wait to try again when I get an ARM Mac, because games like FIFA 98 were struggling to be playable. Also, Netscape 9.0.0.6 crashes and closes DOSBox-X when I try to use it; it doesn't happen with IE6. At first I thought it had to do with available memory, so I patched Windows 98 to use more than 512mb RAM, configured with 1024mb RAM, and it somewhat worked, a bit unstable though. These issues do not happen when I use a (also patched) Win 98 VM on VMware or QEMU.
Actually to sum up the situation, full screen, APM and the right amount of cycles for pentium MMX speed are the only remaining issues now.
Since I upgraded this year to two new DOSBox-X versions, I can no longer go to full screen mode, I am stuck in windowed mode. Not much of a problem now because with VBEMP driver, things are slower (as mentioned on the guide) if I set 1920x1080, which is the resolution of my desktop (actually, it's a "40 4K screen, so double the max resolution in Win 98 with VBEMP, but you get the idea of what I am talking about). I had an idea to use 1280x720 or something closer to it, and then force the use of Normal 2X scaler to get close to where I wanted to be. But without being able to go full screen I cannot check if it is a good idea. I thought of it because I have a similar setting for a Win 98 VM on QEMU for iPad (UTM app it is) which is working well there and covering full screen of my iPad Pro 12.9-inch screen nicely. Other alternative could be reverting to the original video driver and stick with 1024x768 and black bars on screen, but again I'd need full screen available too.
setting cycles to 60000 do not work for games like FIFA 9x or Grand Prix 3 on Win 98 and it is noticeable when I hear the Windows startup sound stuttering. The startup sound stops stuttering and plays fluently if I set cycles to 30000 but gaming is affected by that. I suppose one could use Norton Sysinfo 6 or 8 in DOS mode to guess the correct cycles setting for the emulated pentium model in question, but I think it will be varying from one game to another. Games like Grand Prix 2 on DOS, for example, require much higher cycles setting to have a nice speed from my experience playing it on DOSBox. And this leads me to a suggestion.
DOSBox-X configuration file could have a special tab [custom cycles] or whatever, where we would list different cycles to quickly change between them for different games/applications by just clicking on a menu dropdown option list, that's a quick way to set it up while on GuestOS. I know we can set it from a bat file on DOS, so we don't have to remember them when we don't boot into a Guest OS, but when we're booted on a Guest OS (Windows 9x) we have to manually input the value and remember them in a modal window from the CPU dropdown list. As a UI/UX designer myself, I think it would be a nice idea to improve user experience.
Hope my input helps here.
I just came back to say that for some reason I have no idea why, another attempt at installing Windows 98 SE from the CD-ROM worked out without any issues. Zero problems on Device Manager. Updated drivers, I have even installed VBEMP. So far so good. I am even perplexed, no idea why it worked this time. The only changes I made to original configuration file from the guide were the IDE changes I mentioned above, video resolution (to be able to use the newer resolutions provided by VBEMP) and cranked up the RAM to 512MB.
But I've installed FIFA 98 RTWC and FIFA 99, updated Voodoo drivers (the same from the guide) and I am now having issues in both games:
FIFA 98 RTWC: I can go to the match, but graphics are garbled and somehow I was kicked out back to Windows desktop.
FIFA 99: Graphics started to look garbled when the video showing the stadium location was playing, and waiting for the teams to enter the stadium I was seeing garbled graphics and also was kicked out back to desktop.
I'll do a research on why it happened tomorrow...
@joncampbell123
Suddenly I am unable to compile dosbox-x on my mac for both targets (SDL or SDL2) and I am puzzled. Both give me similar errors: "cannot pass object of non-trivial type..." before failing to compile.
I am not sure if an automatic update to the new Xcode 12 or homebrew accidentally updating my stuff caused this. I can't compile a macOS version of PCem V16 either, with a different error.
I could use the precompiled dosbox-x binaries, but I need to compile one with a small patch, to be able to use NE2000 on my mac since the macOS Sierra days. It's just a one line change on ne2000.cpp
I can confirm that it appears not to be an environment issue. I downloaded the source for the latest officially released build - 0.85.3, and compiled it on the same environment. It works. I now have a fully functional 0.85.3 build even if I have updated something I can't identify right now on xcode 12 command line tools or any homebrew installed package.
So something between the source from github (I suppose 0.86, right?) and the one for 85.3 appears to be broken for macOS, since I can build 0.85.3 from the tar.gz downloaded file, but I cannot build from the latest code in the source from github for the future 0.86 build.
@brunocastello you really should not continue using the same github issue for everything. If it is a new issue, open a new one.
As to your problem, download the 0.83.5 source-code and try to compile it, assuming that works, than we know the issue is between the last release version and the last code. Also, a more complete error report will probably help to pinpoint the issue.
You may also be interested in looking into git-bisect with which you can find the actual offending commit.
@brunocastello you really should not continue using the same github issue for everything. If it is a new issue, open a new one.
I can try to do that. I just used the same because I thought it'd help me better because I see it as a "Story" rather than an "Issue", but I can do that too. I actually wanted to open an issue about Windows 98 and trying to get FIFA 9x (98 or 99, idc which one) working well on DOSBox-X. Currently I can only get the best FIFA 9x graphics on VMware Fusion, but since DOSBox-X does have 3Dfx Voodoo, I should theoretically be getting the same graphics but it's not what is happening here. Anyway, I am trying again now, if I get the same issues going on, I'll probably open another issue on that matter and refrain from coming back to this one. No worries.
As to your problem, download the 0.83.5 source-code and try to compile it, assuming that works, than we know the issue is between the last release version and the last code. Also, a more complete error report will probably help to pinpoint the issue.
I had a 0.83.5 compiled SDL1 one, but for the sake of it, I managed to compile it again without problems. The last code version (0.83.6?) fails to compile in two completely different Macs here. I can try again later, at this moment I am trying to set up an instance with Windows 98 SE on 0.83.5.
You may also be interested in looking into git-bisect with which you can find the actual offending commit.
Sure, I can take a look at it, even though I am not a skilled programmer, just a Web Frontend Dev. See if I can contribute somehow.