Some problems with version 1.3.3
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
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
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 ; } }