joncampbell123 / dosbox-x

DOSBox-X fork of the DOSBox project
GNU General Public License v2.0
2.66k stars 378 forks source link

A few doubts and issues running DOS 622 + WFW311 #1031

Closed brunocastello closed 3 years ago

brunocastello commented 5 years ago

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.

IMG_1420 IMG_1421

brunocastello commented 4 years ago

Oh, I see. I guess that I will have to do my research about the subject.

brunocastello commented 4 years ago

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.

rderooy commented 4 years ago

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

brunocastello commented 4 years ago

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.

brunocastello commented 4 years ago

@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.

rderooy commented 4 years ago

@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.

brunocastello commented 4 years ago

@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...

Wengier commented 4 years ago

@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.

brunocastello commented 4 years ago

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.

Wengier commented 4 years ago

@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.

brunocastello commented 4 years ago

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;

dosboxlog.txt

Wengier commented 4 years ago

@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.

brunocastello commented 4 years ago

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.

brunocastello commented 4 years ago

Here I attached some screenshots of how it is.

Screen Shot 2020-09-05 at 9 16 23 PM

Screen Shot 2020-09-05 at 9 14 07 PM

Wengier commented 4 years ago

@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?

brunocastello commented 4 years ago

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.

Screen Shot 2020-09-05 at 9 24 01 PM Screen Shot 2020-09-05 at 9 24 13 PM

brunocastello commented 4 years ago

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.

brunocastello commented 4 years ago

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.

Wengier commented 4 years ago

@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 commented 4 years ago

@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.

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.

Wengier commented 4 years ago

@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.

brunocastello commented 4 years ago

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).

brunocastello commented 4 years ago

I have two things which I have no clue on how to fix:

Screen Shot 2020-09-06 at 5 26 22 AM

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.

brunocastello commented 4 years ago

@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".

rderooy commented 4 years ago

@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.

brunocastello commented 4 years ago

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.

brunocastello commented 4 years ago

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...

brunocastello commented 4 years ago

@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

brunocastello commented 4 years ago

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.

rderooy commented 4 years ago

@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 commented 3 years ago

@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.