Bug#813674: zoom-player: fails with "X Error of failed request: BadMatch (invalid parameter attributes)"

Alexandre Detiste alexandre.detiste at gmail.com
Sat Feb 6 09:30:15 UTC 2016


Le vendredi 5 février 2016, 22:51:34 Stephen Kitt a écrit :
> > $ zoom ZORK0.ZIP
> > ...
> > X Error of failed request:  BadMatch (invalid parameter attributes)
> >   Major opcode of failed request:  73 (X_GetImage)
> >   Serial number of failed request:  263
> >   Current serial number in output stream:  263
> 
> Zork Zero needs its graphical resources, unlike some Z6 games. You need the
> blorb file alongside the Z6 file...

> ... and you'd figured that out already!

I wish I had started with Arthur instead of Zork Zero... 
this was documented in your .yaml file.

I still think the engine shouldn't crash _that_ hard
with a not at all obvious error message
when then blorb file is missing.

With this patch it will start like Gargoyle if the blorb file is missing, instead
of immediatly errorring out.
(without a dialog box even when launched from a desktop environment)

It's easier to google for "missing graphics for Zork Zero with zoom"
(with the answer "just use game-data-packager, duh")
than for "X_GetImage BadMatch" that unearthens a lot
of old unrelated stuff.

This patch ensure that X_GetImage is never called with negative values.

git diff -U10 src/v6display.c
diff --git a/src/v6display.c b/src/v6display.c
index 780bf9c..19ae91f 100644
--- a/src/v6display.c
+++ b/src/v6display.c
@@ -491,23 +491,23 @@ void v6_erase_line(int val)
 void v6_set_colours(int fg, int bg)
 {
 #ifdef DEBUG
   printf_debug("V6: set colours: %i, %i (window %i)\n", fg, bg, active_win);
 #endif
 
   if (fg == -2)
     fg = ACTWIN.fore;
   if (bg == -2)
     bg = ACTWIN.back;
-  if (fg == -1)
+  if (fg == -1 || ACTWIN.curx < 0 || ACTWIN.cury < 0)
     fg = DEFAULT_FORE;
-  if (bg == -1)
+  if (bg == -1 || ACTWIN.curx < 0 || ACTWIN.cury < 0)
     bg = DEFAULT_BACK;
 
   if (bg == -3)
     bg = display_get_pix_colour(ACTWIN.curx, ACTWIN.cury);
   if (fg == -3)
     fg = display_get_pix_colour(ACTWIN.curx, ACTWIN.cury);
 
   ACTWIN.fore = fg;
   ACTWIN.back = bg;
 }
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.alioth.debian.org/pipermail/pkg-games-devel/attachments/20160206/1b7c6d24/attachment-0001.sig>


More information about the Pkg-games-devel mailing list