14.01.2013 17:35, Bart Oldeman пишет:
> I would for now stick to (a fresh git clone of, last commit b028d3)
> "master" and just apply your patches yourself. I found some more
> regressions in the "devel" branch (exitemu for console graphics
> doesn't restore properly anymore, and boot-time int21 tracing is
> lost), so I'd be uncomfortable creating a general-use RPM out of that.
>
> The confusion all stems from the fact that I tagged "master" at one
> point as 1.4.0.8 and Stas thought that was going to be 1.4.1, but it
> wasn't yet.
Yes, but the proper fix would have been to create a release branch
and revert only coopthreads_v2 out of it. The rest should be fine,
or at least small enough to fix quickly.
And the mouse fixes are important enough to get some testing
and appear in the release: many games are now playable without
mouse grab. And the mouse grab have now proper sensitivity.
As well as the lredir fixes: it can now be used instead of cdemu,
which allows to run games that were impossible (or difficult) to
run before.
And there are more...
And if they are not tested in an unofficial rpm, they may still have
bugs when released. Or, if they are not released - even worse,
because the next release will probably never happen at all.

Also, it is entirely possible that the ones you've found, are not
release-critical. int21 tracing should re-appear after post_boot(),
and vga console is probably of no use with KMS. So those look
like a very minor bugs, not preventing an unofficial release, but I'll
see where they are.

I think the better solution would be to let Justin to do the testing
and decide whether or not it suits. He already claims to have found
some $_sound=(0) bug, but I think that's the false alarm - works
perfectly here (needs a -D9+Sc log to justify).

The attached patch will probably fix int21 traces.
But I wonder if this is needed at all: dosemu does not revect other
interrupts just for logging (when otherwise the revectoring is not
needed), unless I am mistaken.
diff --git a/src/base/async/int.c b/src/base/async/int.c
index fb415e0..f8a8578 100644
--- a/src/base/async/int.c
+++ b/src/base/async/int.c
@@ -1438,10 +1438,9 @@ int can_revector(int i)
  */
 
   switch (i) {
-#if 0
-  /* we hook it in int21_post_boot(), not here */
+  /* we hook it in int21_post_boot(), not here,
+   * but for early logging we revect it here too */
   case 0x21:			/* we want it first...then we'll pass it on */
-#endif
   case 0x28:                    /* keyboard idle interrupt */
   case 0x2f:			/* needed for XMS, redirector, and idling */
   case DOS_HELPER_INT:		/* e6 for redirector and helper (was 0xfe) */
@@ -2047,7 +2046,7 @@ void do_int(int i)
  	}
 #endif
 
-	if (can_revector(i) == REVECT) {
+	if (can_revector(i) == REVECT && interrupt_function[i][REVECT]) {
 		coopth_start(int_rvc_tid + i, do_int_thr, (void *)(long)i);
 	} else {
 		di_printf("int 0x%02x, ax=0x%04x\n", i, LWORD(eax));
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122412
_______________________________________________
Dosemu-devel mailing list
Dosemu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dosemu-devel

Reply via email to