VOGONS


PCEm. Another PC emulator.

Topic actions

  • This topic is locked. You cannot reply or edit posts.

Reply 340 of 1046, by SarahWalker

User metadata
Rank Member
Rank
Member

That seems highly unlikely. Bryan's hitting 100% because, if everything's set up correctly, Windows 9x will start sleeping when appropriate, dropping the instruction count significantly.

The WoW emulation layer won't affect speed much, as the CPU emulation doesn't use Windows API calls anywhere.

Reply 346 of 1046, by mcihelka

User metadata
Rank Newbie
Rank
Newbie

Hi there,

I think I found a bug in PCEm, running Windows 3.1x on PCEm V8.1.

When I run a DOS application within Windows 3.1x and change it from full-screen to windowed mode (CTRL+Enter), I get video corruption in the DOS application's window.

If I edit the PIF file for the DOS application so that it launches in windowed mode immediately, I get a random result ranging from occasional success through to GP faults/integrity violations or complete lock up (of the emulated system that is).

I have tested this on Generic AMI 386/486/WinBIOS configurations, with both Trident 8900D and Tseng ET4000 roms (so basically the core configurations available if you just stick with what's downloadable from Sarah's website). For each configuration I also played around with all sorts of BIOS settings, plus tested DOS versions 5.0a and 6.22 + Windows versions 3.1 and 3.11 with a variety of video drivers/resolutions/color depths. Even with a bare-bones boot (himem.sys only, no emm386/mouse/smartdrv/etc.) the bug still persists. Screenshots are attached so you can see what I'm getting.

I'm not looking for a fix, just thought I'd let Sarah and contributors know seeing as nobody has mentioned this bug (so far a I can see that is).

But while I'm here may I say how awesome this little emulator is. Sarah and contributors: you have a real talent, thanks for sharing this with folks like me who wouldn't even know where to start. I do code a bit myself, but it's all so high-level compared to this!

M

Attachments

  • Filename
    Shot1.png
    File size
    39.02 KiB
    Downloads
    No downloads
    File comment
    After pressing CTRL-Enter to get a full-screen DOS app into windowed mode
    File license
    Fair use/fair dealing exception
  • Shot2.png
    Filename
    Shot2.png
    File size
    9.38 KiB
    Views
    3604 views
    File comment
    Changing PIF settings to windowed mode
    File license
    Fair use/fair dealing exception
  • Filename
    Shot3.png
    File size
    39.75 KiB
    Downloads
    No downloads
    File comment
    Launching a DOS app (with PIF settings changed to windowed mode)
    File license
    Fair use/fair dealing exception
  • Filename
    Shot4.png
    File size
    42.66 KiB
    Downloads
    No downloads
    File comment
    Sometimes you get lucky (but who knows if memory is being corrupted somewhere and Windows just doesn't know about it)
    File license
    Fair use/fair dealing exception

Reply 349 of 1046, by SA1988

User metadata
Rank Member
Rank
Member
SarahWalker wrote:

No idea. Maybe one of your patches has broken it in some way? (any intention of sharing these patches btw?)

those patches are mainly for the CPU emulation, not the configuration menu, also, I had to select in pcem.cfg the machine as 24 (machine = 24) to get to the 430vx, but the configuration menu appears blank.

Screenshot in the attachment.

Attachments

  • Filename
    Capture.PNG
    File size
    87.71 KiB
    Downloads
    No downloads
    File license
    Fair use/fair dealing exception

Reply 350 of 1046, by ecksemmess

User metadata
Rank Newbie
Rank
Newbie

SA1988 and Sarah: I ran into the same bug, and it was trivial to fix. Current PCem SVN has the PC Jr., which means the total number of machines is one higher than it was previously, but the variable that keeps track of how many machines there are wasn't incremented to match (or at least, not everywhere). I should have pointed it out when I noticed it, but I forgot--sorry about that! Sorry to be so vague about it, but it really is a quick and easy fix, so I don't imagine you'll have any difficulties taking care of it. If necessary, just ask and I'll hunt it down in more detail. In the meantime, my patch collection is coming along quite nicely, and one of the things I'm fixing is some sort of subtle protected mode timing bug that manifests when EMS drivers are loaded. Perhaps that will lead to a fix for the Win 3.x DOS box glitch that was just reported here? Probably a long shot, but I wouldn't know where else to begin hunting that down.

Reply 352 of 1046, by ecksemmess

User metadata
Rank Newbie
Rank
Newbie
SarahWalker wrote:

Any more details about this protected mode bug?

I don't want to speak too soon, as I'm still pretty early in the process of figuring out exactly what's going on, but the issue I'm seeing is basically this: when in DOS with EMM386.EXE enabled, the emulated system's effective execution rate is reduced to a small fraction of what it should be (often ~25%, though this number isn't quite constant). I've tested this with several versions of MS-DOS and tons of different versions of EMM386.EXE, and the behavior is always the same. The effects of this aren't always apparent, but it badly breaks software that depends on real-time delay loops for speed control. Even so, you should be able to verify it by looking at the MIPS value in the status window with and without EMM386 enabled. I may have been too hasty in declaring it to be a pmode core bug, but that's my current tentative guess. I'm not an expert on any of this, but imperfect or incomplete emulation of V86-mode would seem to be the obvious culprit. I think I can probably fix it, but if you get it done before I do, all the better (but please let me know, so that I don't duplicate your work 😀)

Last edited by ecksemmess on 2014-02-09, 12:09. Edited 1 time in total.

Reply 353 of 1046, by SA1988

User metadata
Rank Member
Rank
Member

Another, but minor, issue is the CD track listing (CDAudio) when I play a CD Audio disc on PCem (mounted), it gets played well, but the track listing gets screwed up on win3.00a MME 1.0, win3.1x, win95, win98 and winme: for example, when Track 2 of a CD Music disc gets played, the track listing goes towards the successive tracks (like Track 3, track 4 and so on) even though what is playing is Track 2.

Reply 357 of 1046, by HalfMinute

User metadata
Rank Newbie
Rank
Newbie

I get following errors in log when running Civilization in dos,ami486 and trying to move a mouse (game hangs):
Serial data 43 34 08
Serial data 43 3E 01
Serial data 43 3A 06
Serial data 43 3D 04
Serial data 43 39 0E
x86 illegal 0011 80000011 017D:000007EA FF
x86 illegal 0011 80000011 017D:000007EA FF
x86 illegal 0011 80000011 017D:000007EA FF
x86 illegal 0011 80000011 017D:000007EA FF

Reply 359 of 1046, by SA1988

User metadata
Rank Member
Rank
Member

now, instead of going to successive CD audio tracks, for mixed mode CDs, when a track is played it doesn't start from 00:00 but rather to a random number (like 05:54, then goes, to 06:54, 07:54 every second), I wonder if it's a MSF issue as dosbox doesn't have such issue (I have looked at ide.c and cdrom-ioctl.c but found nothing or maybe I haven't looked well)