Skip to contentSkip to conversation

Some problems with version 1.3.3

DISCUSSION Stas Sergeev 3 participants 3 messages Jan 11, 2006

lore
Share & tools
lore
#0 lore raw

Hello.

Quoted 1 line · Bart Oldeman

hmm I still find this mysterious, what did you patch in the binary,

The retrace-waiting code like this (dx=0x3da):

---

000215FD: EC                           in        al,dx
000215FE: A801                         test      al,001 ;"☺"
00021600: 75FB                         jne       0000215FD
00021602: EC                           in        al,dx
00021603: A801                         test      al,001 ;"☺"
00021605: 74FB                         je        000021602
00021607: EC                           in        al,dx
00021608: A808                         test      al,008 ;"◘"
0002160A: 75E7                         jne       0000215F3
0002160C: A801                         test      al,001 ;"☺"
0002160E: 74E3                         je        0000215F3
00021610: EC                           in        al,dx
00021611: A808                         test      al,008 ;"◘"
00021613: 75DE                         jne       0000215F3
00021615: A801                         test      al,001 ;"☺"
00021617: 74DA                         je        0000215F3
00021619: EC                           in        al,dx
0002161A: A808                         test      al,008 ;"◘"
0002161C: 75D5                         jne       0000215F3
0002161E: A801                         test      al,001 ;"☺"
00021620: 74D1                         je        0000215F3
00021622: EC                           in        al,dx
00021623: A808                         test      al,008 ;"◘"                 00021625: 75CC                         jne       0000215F3
00021627: A801                         test      al,001 ;"☺"
00021629: 74C8                         je        0000215F3
0002162B: EC                           in        al,dx
0002162C: A808                         test      al,008 ;"◘"
0002162E: 75C3                         jne       0000215F3
00021630: A801                         test      al,001 ;"☺"
00021632: 74BF                         je        0000215F3
00021634: F706147A0100                 test      w,[07A14],00001 ;" ☺"
0002163A: 742D                         je        000021669
0002163C: EC                           in        al,dx
0002163D: A808                         test      al,008 ;"◘"
0002163F: 75B2                         jne       0000215F3
00021641: A801                         test      al,001 ;"☺"
00021643: 74AE                         je        0000215F3
00021645: EC                           in        al,dx
00021646: A808                         test      al,008 ;"◘"
00021648: 75A9                         jne       0000215F3
0002164A: A801                         test      al,001 ;"☺"
0002164C: 74A5                         je        0000215F3
0002164E: EC                           in        al,dx
0002164F: A808                         test      al,008 ;"◘"
00021651: 75A0                         jne       0000215F3
00021653: A801                         test      al,001 ;"☺"
00021655: 749C                         je        0000215F3
00021657: EC                           in        al,dx
00021658: A808                         test      al,008 ;"◘"
0002165A: 7597                         jne       0000215F3
0002165C: A801                         test      al,001 ;"☺"
0002165E: 7493                         je        0000215F3
00021660: EC                           in        al,dx
00021661: A808                         test      al,008 ;"◘"
00021663: 758E                         jne       0000215F3
00021665: A801                         test      al,001 ;"☺"
00021667: 748A                         je        0000215F3
00021669: CB                           retf                                  ---

And as for keen5 - I don't know yet, does it work
for you indeed? Maybe the Cosmo-alike problem.

Quoted 2 lines

so that it works for you, and why does it work for me even without patching? Is it CPU dependent?

Yes - the faster the CPU is, the slower it goes. Apparently the dosemu retrace emulation is a fake (just uses the timer values).

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#1 lore raw
Quoted 2 lines · Stas Sergeev

And as for keen5 - I don't know yet, does it work
for you indeed? Maybe the Cosmo-alike problem.

Yep, your complete Keen5 worked. I hadn't noticed you had patched it against 1.0 and was trying it with my 1.4 files.

Quoted 6 lines
Quoted 2 lines

so that it works for you, and why does it work for me even without patching? Is it CPU dependent?

Yes - the faster the CPU is, the slower it goes. Apparently the dosemu retrace emulation is a fake (just uses the timer values).

My CPU here is 1GHz. The first time I tried it (when it had the same problems) was on my laptop which has a 500MHz CPU.

Julius

#2 lore raw
In reply to Stas Sergeev
Quoted 1 line · Stas Sergeev

The retrace-waiting code like this (dx=0x3da):

ok

Quoted 2 lines

And as for keen5 - I don't know yet, does it work
for you indeed? Maybe the Cosmo-alike problem.

I still have to test that.

Quoted 5 lines
Quoted 2 lines

so that it works for you, and why does it work for me even without patching? Is it CPU dependent?

Yes - the faster the CPU is, the slower it goes. Apparently the dosemu retrace emulation is a fake (just uses the timer values).

Yes, it is. But then I'm not sure if it's hretrace or vretrace that is problematic -- I would guess that the vretrace timings are large enough not too miss anything. For hretrace, the code is random though; a patch to
do it the dosbox-way is as follows, but I'm not sure if it helps. Can you and Julius test it?

Bart

env/video/miscemu.c renamed from env/video/miscemu.c.~1.10.~ +4 -1
@@ -325,6 +325,7 @@
    */
   static unsigned char hretrace = 0, vretrace = 0, first = 1;
   static hitimer_t t_vretrace = 0;
+  static int flip = 0;
   /* Timings are 'ballpark' guesses and may vary from mode to mode, but
      such accuracy is probably not important... I hope. (--adm) */
   static int vvfreq = 17000;	/* 70 Hz - but the best we'll get with
@@ -361,8 +362,10 @@
       vretrace = 0x09; t_vretrace = t;
     }
     else {
+      flip++;
+      if (flip > 20) flip = 0;
       /* We're in horizontal retrace?  If so, just set DE flag, 0 in VR */
-      hretrace = (tdiff%49) > 35;
+      hretrace = flip > 10;
     }
   }