From 2954208d00d422b34fa3a69631b0a091f17a349d Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 2 Dec 2020 08:23:52 +0100 Subject: 5.44 --- hacks/Makefile.in | 36 +- hacks/analogtv-cli.c | 66 +- hacks/barcode.c | 28 +- hacks/bsod.c | 208 ++++- hacks/compile_axp.com | 1 + hacks/compile_decc.com | 1 + hacks/config/README | 4 +- hacks/config/bsod.xml | 8 +- hacks/config/deepstars.xml | 2 + hacks/config/dnalogo.xml | 12 - hacks/config/etruscanvenus.xml | 143 +++ hacks/config/gibson.xml | 65 ++ hacks/config/hypertorus.xml | 6 +- hacks/config/klein.xml | 12 +- hacks/config/projectiveplane.xml | 4 + hacks/config/razzledazzle.xml | 2 +- hacks/config/romanboy.xml | 4 + hacks/config/scooter.xml | 42 + hacks/drift.c | 3 +- hacks/eruption.c | 330 ++++--- hacks/filmleader.c | 13 +- hacks/fireworkx.c | 1 + hacks/glx/Makefile.in | 50 +- hacks/glx/deepstars.c | 8 +- hacks/glx/etruscanvenus.c | 1825 ++++++++++++++++++++++++++++++++++++++ hacks/glx/etruscanvenus.man | 372 ++++++++ hacks/glx/gibson.c | 1335 ++++++++++++++++++++++++++++ hacks/glx/gibson.man | 88 ++ hacks/glx/glhanoi.c | 9 +- hacks/glx/glmatrix.c | 2 +- hacks/glx/gravitywell.c | 6 + hacks/glx/hypertorus.c | 441 +++++---- hacks/glx/hypertorus.man | 76 +- hacks/glx/klein.c | 815 ++++++++++++----- hacks/glx/klein.man | 138 +-- hacks/glx/polytopes.c | 10 +- hacks/glx/projectiveplane.c | 460 +++++++--- hacks/glx/projectiveplane.man | 132 +-- hacks/glx/romanboy.c | 358 +++++--- hacks/glx/romanboy.man | 110 ++- hacks/glx/sonar-icmp.c | 22 +- hacks/glx/sonar.c | 8 +- hacks/glx/starwars.c | 12 +- hacks/halftone.c | 1 + hacks/halo.c | 2 + hacks/images/Makefile | 2 + hacks/images/Makefile.in | 2 + hacks/moire2.c | 2 +- hacks/munch.c | 12 +- hacks/munge-ad.pl | 1 - hacks/rd-bomb.c | 10 + hacks/recanim.c | 12 +- hacks/scooter.c | 957 ++++++++++++++++++++ hacks/scooter.man | 79 ++ hacks/screenhack.c | 8 +- hacks/webcollage | 1 + hacks/xlockmore.c | 36 +- hacks/xlyap.c | 2 +- hacks/xmatrix.c | 4 +- 59 files changed, 7328 insertions(+), 1071 deletions(-) create mode 100644 hacks/config/etruscanvenus.xml create mode 100644 hacks/config/gibson.xml create mode 100644 hacks/config/scooter.xml create mode 100644 hacks/glx/etruscanvenus.c create mode 100644 hacks/glx/etruscanvenus.man create mode 100644 hacks/glx/gibson.c create mode 100644 hacks/glx/gibson.man create mode 100644 hacks/scooter.c create mode 100644 hacks/scooter.man (limited to 'hacks') diff --git a/hacks/Makefile.in b/hacks/Makefile.in index 63e69be..7acaeb3 100644 --- a/hacks/Makefile.in +++ b/hacks/Makefile.in @@ -122,7 +122,7 @@ SRCS = attraction.c blitspin.c bouboule.c braid.c bubbles.c \ boxfit.c interaggregate.c celtic.c cwaves.c m6502.c \ asm6502.c abstractile.c lcdscrub.c hexadrop.c \ tessellimage.c delaunay.c recanim.c binaryring.c \ - glitchpeg.c vfeedback.c webcollage-cocoa.m \ + glitchpeg.c vfeedback.c scooter.c webcollage-cocoa.m \ webcollage-helper-cocoa.m testx11.c SCRIPTS = vidwhacker webcollage ljlatest @@ -164,7 +164,7 @@ OBJS = attraction.o blitspin.o bouboule.o braid.o bubbles.o \ webcollage-cocoa.o webcollage-helper-cocoa.o m6502.o \ asm6502.o abstractile.o lcdscrub.o hexadrop.o \ tessellimage.o delaunay.o recanim.o binaryring.o \ - glitchpeg.o vfeedback.o testx11.o + glitchpeg.o vfeedback.o scooter.o testx11.o EXES = attraction blitspin bouboule braid decayscreen deco \ drift flame galaxy grav greynetic halo \ @@ -186,7 +186,7 @@ EXES = attraction blitspin bouboule braid decayscreen deco \ pacman fuzzyflakes anemotaxis memscroller substrate \ intermomentary fireworkx fiberlamp boxfit interaggregate \ celtic cwaves m6502 abstractile lcdscrub hexadrop \ - tessellimage binaryring glitchpeg vfeedback \ + tessellimage binaryring glitchpeg vfeedback scooter \ @JPEG_EXES@ JPEG_EXES = webcollage-helper @@ -245,7 +245,7 @@ MEN = anemone.man apollonian.man attraction.man \ intermomentary.man fireworkx.man fiberlamp.man boxfit.man \ interaggregate.man celtic.man cwaves.man abstractile.man \ lcdscrub.man hexadrop.man tessellimage.man binaryring.man \ - glitchpeg.man vfeedback.man + glitchpeg.man vfeedback.man scooter.man RETIRED_MEN = ant.man bubbles.man critical.man flag.man forest.man \ laser.man lightning.man lisa.man lissie.man lmorph.man \ @@ -291,7 +291,10 @@ install-program:: $(EXES) done install-scripts: $(SCRIPTS) munge-scripts - @for program in $(SCRIPTS); do \ + @if [ ! -d $(install_prefix)$(HACKDIR) ]; then \ + $(INSTALL_DIRS) $(install_prefix)$(HACKDIR) ; \ + fi ; \ + for program in $(SCRIPTS); do \ if [ -r $$program ] ; then \ p=$$program ; \ else \ @@ -814,8 +817,8 @@ halftone: halftone.o $(HACK_OBJS) $(COL) metaballs: metaballs.o $(HACK_OBJS) $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS) -eruption: eruption.o $(HACK_OBJS) - $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(HACK_LIBS) +eruption: eruption.o $(HACK_OBJS) $(SHM) + $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(SHM) $(HACK_LIBS) $(THRL) popsquares: popsquares.o $(HACK_OBJS) $(DBE) $(COL) $(CC_HACK) -o $@ $@.o $(HACK_OBJS) $(DBE) $(COL) $(HACK_LIBS) @@ -1030,6 +1033,9 @@ pacman: pacman.o $(PACOBJS) $(XLOCK_OBJS) $(PNG) fiberlamp: fiberlamp.o $(XLOCK_OBJS) $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(HACK_LIBS) +scooter: scooter.o $(XLOCK_OBJS) + $(CC_HACK) -o $@ $@.o $(XLOCK_OBJS) $(HACK_LIBS) + # These are not like the others. # xsublim: xsublim.o $(HACK_OBJS_1) @@ -1655,6 +1661,7 @@ eruption.o: $(UTILS_SRC)/hsv.h eruption.o: $(UTILS_SRC)/resources.h eruption.o: $(UTILS_SRC)/usleep.h eruption.o: $(UTILS_SRC)/visual.h +eruption.o: $(UTILS_SRC)/xshm.h eruption.o: $(UTILS_SRC)/yarandom.h euler2d.o: ../config.h euler2d.o: $(srcdir)/fps.h @@ -2711,6 +2718,21 @@ rotzoomer.o: $(UTILS_SRC)/usleep.h rotzoomer.o: $(UTILS_SRC)/visual.h rotzoomer.o: $(UTILS_SRC)/xshm.h rotzoomer.o: $(UTILS_SRC)/yarandom.h +scooter.o: ../config.h +scooter.o: $(srcdir)/fps.h +scooter.o: $(srcdir)/recanim.h +scooter.o: $(srcdir)/screenhackI.h +scooter.o: $(UTILS_SRC)/colors.h +scooter.o: $(UTILS_SRC)/erase.h +scooter.o: $(UTILS_SRC)/font-retry.h +scooter.o: $(UTILS_SRC)/grabscreen.h +scooter.o: $(UTILS_SRC)/hsv.h +scooter.o: $(UTILS_SRC)/resources.h +scooter.o: $(UTILS_SRC)/usleep.h +scooter.o: $(UTILS_SRC)/visual.h +scooter.o: $(UTILS_SRC)/yarandom.h +scooter.o: $(srcdir)/xlockmoreI.h +scooter.o: $(srcdir)/xlockmore.h screenhack.o: ../config.h screenhack.o: $(srcdir)/fps.h screenhack.o: $(srcdir)/recanim.h diff --git a/hacks/analogtv-cli.c b/hacks/analogtv-cli.c index d70db1b..aeec901 100644 --- a/hacks/analogtv-cli.c +++ b/hacks/analogtv-cli.c @@ -1,4 +1,4 @@ -/* xanalogtv-cli, Copyright (c) 2018 Jamie Zawinski +/* xanalogtv-cli, Copyright (c) 2018-2019 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -15,7 +15,7 @@ * --duration Length in seconds of MP4. * --powerup Do the power-on animation at the beginning. * --logo FILE Small image overlayed onto the colorbars image. - * --audio FILE Add a soundtrack. Must be as long or longer. + * --audio FILE Add a soundtrack. * * Created: 10-Dec-2018 by jwz. */ @@ -573,7 +573,8 @@ analogtv_write_mp4 (struct state *st, const char *outfile, " -map 0:v:0" " -map 1:a:0" " -acodec aac" - " -shortest", + /* Truncate or pad audio to length of video */ + " -filter_complex '[1:0] apad' -shortest", audiofile); sprintf (cmd + strlen(cmd), " -c:v libx264" @@ -642,10 +643,11 @@ analogtv_convert (const char *infile, const char *outfile, unsigned long curticks = 0; time_t lastlog = time((time_t *)0); int frames_left; + int channel_changes = 0; int fps = 30; if (verbose_p) - fprintf (stderr, "%s: progname: loaded %s %dx%d\n", + fprintf (stderr, "%s: loaded %s %dx%d\n", progname, infile, ximage->width, ximage->height); flip_ximage (ximage); @@ -663,12 +665,30 @@ analogtv_convert (const char *infile, const char *outfile, calloc (st->output_frame->height, st->output_frame->bytes_per_line); { - char *s1, *s2; - st->framefile_fmt = malloc (strlen(outfile) + 100); + char *s0, *slash, *dot; + st->framefile_fmt = calloc (1, strlen(outfile) + 100); + + s0 = st->framefile_fmt; strcpy (st->framefile_fmt, outfile); - s1 = strrchr (st->framefile_fmt, '/'); - s2 = strrchr (st->framefile_fmt, '.'); - if (s2 && s2 > s1) *s2 = 0; + + slash = strrchr (st->framefile_fmt, '/'); + dot = strrchr (st->framefile_fmt, '.'); + if (dot && dot > slash) *dot = 0; + + /* Make tmp files be dotfiles */ + if (slash) { + memmove (slash+1, slash, strlen(slash)+1); + slash[1] = '.'; + } else { + memmove (s0+1, s0, strlen(s0)+1); + s0[0] = '.'; + } + + /* Can't have percents in the tmp file names */ + for (s0 = (slash ? slash : s0); *s0; s0++) { + if (*s0 == '%') *s0 = '_'; + } + sprintf (st->framefile_fmt + strlen(st->framefile_fmt), ".%08x.%%06d.png", (random() % 0xFFFFFFFF)); } @@ -677,7 +697,7 @@ analogtv_convert (const char *infile, const char *outfile, int x, y; st->logo = file_to_ximage (0, 0, logofile); if (verbose_p) - fprintf (stderr, "%s: progname: loaded %s %dx%d\n", + fprintf (stderr, "%s: loaded %s %dx%d\n", progname, logofile, st->logo->width, st->logo->height); flip_ximage (st->logo); /* Pull the alpha out of the logo and make a separate mask ximage. */ @@ -799,6 +819,8 @@ analogtv_convert (const char *infile, const char *outfile, st->curinputi=0; st->cs = &st->chansettings[st->curinputi]; + + /* First channel (initial unadulterated image) stays for this long */ frames_left = fps * (2 + frand(1.5)); st->tv->powerup=0.0; @@ -832,17 +854,35 @@ analogtv_convert (const char *infile, const char *outfile, frames_left--; if (frames_left <= 0) { - frames_left = fps * (0.5 + frand(2.5)); - if (st->curinputi != 0 && !(random() % 3)) { - st->curinputi = 0; /* unadulterated image */ + channel_changes++; + + if (channel_changes == 1) { + /* Second channel has short duration */ + frames_left = fps * (0.25 + frand(0.5)); } else { + frames_left = fps * (0.5 + frand(2.5)); + } + + if (channel_changes == 2) { + /* Always use the unadulterated image for the third channel: + So the effect is, plain, brief blip, plain, then random. */ + st->curinputi = 0; + } else if (st->curinputi != 0 && !(random() % 3)) { + /* Use the unadulterated image 1/3 of the time */ + st->curinputi = 0; + } else { + /* Otherwise random */ st->curinputi = 1 + (random() % (N_CHANNELS - 1)); } st->cs = &st->chansettings[st->curinputi]; /* Set channel change noise flag */ st->tv->channel_change_cycles=200000; + + if (verbose_p) + fprintf (stderr, "%s: %.1f: channel %d\n", + progname, curticks/1000.0, st->curinputi); } for (i=0; ifont->ascent + bst->font->descent; int line_height1 = bst->fontA->ascent + bst->fontA->descent; @@ -2528,7 +2528,7 @@ macsbug (Display *dpy, Window window) if (xoff < 0) xoff = 0; if (yoff < 0) yoff = 0; - BSOD_MARGINS (bst, xoff, yoff); + BSOD_MARGINS (bst, xoff, xoff); BSOD_COLOR (bst, bc, bg); BSOD_RECT (bst, True, 0, 0, bst->xgwa.width, bst->xgwa.height); @@ -2552,7 +2552,9 @@ macsbug (Display *dpy, Window window) BSOD_MOVETO (bst, xoff + col_right + char_width, yoff + body_top + line_height); - BSOD_MARGINS (bst, xoff + col_right + char_width, yoff); + BSOD_MARGINS (bst, + xoff + col_right + char_width, + xoff + col_right + char_width); BSOD_TEXT (bst, LEFT, body); BSOD_RECT (bst, False, xoff-2, yoff, page_right+4, page_bottom); /* again */ @@ -3265,28 +3267,21 @@ sparc_solaris (Display *dpy, Window window) Pixmap pixmap = image_data_to_pixmap (dpy, window, sun_png, sizeof(sun_png), &pix_w, &pix_h, &mask); -# if 0 - if (pixmap && - pix_w < bst->xgwa.width / 2 && - pix_h < bst->xgwa.height / 2) - { - int i, n = 1; - if (bst->xgwa.width > 2560) n++; /* Retina displays */ - for (i = 0; i < n; i++) - { - pixmap = double_pixmap (dpy, bst->xgwa.visual, - bst->xgwa.depth, pixmap, pix_w, pix_h); - mask = double_pixmap (dpy, bst->xgwa.visual, 1, mask, pix_w, pix_h); - pix_w *= 2; - pix_h *= 2; - } - } -# endif char_width = (bst->font->per_char ? bst->font->per_char['n'-bst->font->min_char_or_byte2].width : bst->font->min_bounds.width); + if (pixmap) + while (pix_w < char_width * 4) + { + pixmap = double_pixmap (dpy, bst->xgwa.visual, + bst->xgwa.depth, pixmap, pix_w, pix_h); + mask = double_pixmap (dpy, bst->xgwa.visual, 1, mask, pix_w, pix_h); + pix_w *= 2; + pix_h *= 2; + } + bst->pixmap = pixmap; bst->mask = mask; @@ -3384,13 +3379,13 @@ sparc_solaris (Display *dpy, Window window) BSOD_PIXMAP (bst, 0, 0, pix_w, pix_h, ~0, ~0); BSOD_MARGINS (bst, - bst->left_margin + char_width * 12, - bst->top_margin); + bst->left_margin + pix_w + char_width * 2, + bst->left_margin + pix_w + char_width * 2); BSOD_TEXT (bst, LEFT, "SPARCstation IPC, Keyboard Present\n" "ROM Rev. 2.9, 16 MB memory installed, Serial #12648190.\n" "Ethernet address 8:0:20:37:1:87, Host ID: 52c0fefe.\n"); - BSOD_MARGINS (bst, bst->left_margin, bst->top_margin); + BSOD_MARGINS (bst, bst->left_margin, bst->left_margin); BSOD_TEXT (bst, LEFT, "\n\n\033"); BSOD_PAUSE (bst, 3000000); @@ -5653,6 +5648,121 @@ dvd (Display *dpy, Window window) } +static struct bsod_state * +tivo (Display *dpy, Window window) +{ + struct bsod_state *bst = make_bsod_state (dpy, window, "tivo", "Tivo"); + int char_width = + (bst->font->per_char + ? bst->font->per_char['n'-bst->font->min_char_or_byte2].width + : bst->font->min_bounds.width); + int line_height = bst->font->ascent + bst->font->descent; + + int left = (bst->xgwa.width - char_width * 44) / 2; + int top = (bst->xgwa.height - line_height * 15) / 2; + if (left < 0) left = 0; + if (top < 0) top = 0; + + XClearWindow (dpy, window); + + BSOD_MARGINS (bst, left, left); + BSOD_MOVETO (bst, left, top); + + BSOD_FONT (bst, 1); + BSOD_TEXT (bst, LEFT, "\nA severe error has occurred.\n\n"); + BSOD_FONT (bst, 0); + BSOD_TEXT (bst, LEFT, + "Please leave the Receiver plugged in and connected\n" + "to the phone line for the next three hours while the\n" + "Receiver attempts to repair itself."); + BSOD_FONT (bst, 1); + BSOD_TEXT (bst, LEFT, + "\n\n" + "DO NOT UNPLUG OR RESTART\nTHE RECEIVER.\n\n"); + BSOD_FONT (bst, 0); + BSOD_TEXT (bst, LEFT, + "If, after three hours, the Receiver does not restart\n" + "itself, call Customer Care."); + + BSOD_PAUSE (bst, 1000000 * 60); + return bst; +} + + +/* Error message for corrupted (and therefore presumed bootleg) cartridges. + */ +static struct bsod_state * +nintendo (Display *dpy, Window window) +{ + struct bsod_state *bst = make_bsod_state (dpy, window, + "nintendo", "Nintendo"); + unsigned long bg = get_pixel_resource (dpy, bst->xgwa.colormap, + "nintendo.background", + "Nintendo.Background"); + unsigned long bg2 = get_pixel_resource (dpy, bst->xgwa.colormap, + "nintendo.background2", + "Nintendo.Background"); + unsigned long fg = get_pixel_resource (dpy, bst->xgwa.colormap, + "nintendo.foreground", + "Nintendo.Foreground"); + int char_width = + (bst->font->per_char + ? bst->font->per_char['n'-bst->font->min_char_or_byte2].width + : bst->font->min_bounds.width); + int line_height = bst->font->ascent + bst->font->descent; + + int left = (bst->xgwa.width - char_width * 30) / 2; + int top = (bst->xgwa.height - line_height * 9) / 2; + int left2 = left - char_width * 4; + int top2 = top - line_height; + if (left < 0) left = 0; + if (top < 0) top = 0; + if (left2 < 0) left2 = 0; + if (top2 < 0) top2 = 0; + if (left2 > char_width * 8) left2 = char_width * 8; + if (top2 > line_height * 10) top2 = line_height * 10; + + XClearWindow (dpy, window); + + BSOD_COLOR (bst, bg2, bg); + BSOD_RECT (bst, True, left2, top2 - line_height*2, + bst->xgwa.width - left2*2, + bst->xgwa.height - top2*2 + line_height*2); + + BSOD_MARGINS (bst, left, left); + BSOD_MOVETO (bst, left, top - line_height/2); + + BSOD_FONT (bst, 1); + BSOD_COLOR (bst, bg, bg2); + + /* a variant crash has a second box above the English text that says: + + 警告 + ビデオゲームのコピーは法律で禁じられています。 + 詳しくは取扱説明書をご覧になってください。 + + but BSOD_TEXT doesn't do Xft, and more importantly, "PxPlus IBM VGA8" + doesn't contain Japanese characters. + */ + + BSOD_TEXT (bst, CENTER, "WARNING"); + BSOD_FONT (bst, 0); + BSOD_COLOR (bst, fg, bg2); + BSOD_TEXT (bst, LEFT, + "\n\n" + "IT IS A SERIOUS CRIME\n" + "TO COPY VIDEO GAMES\n" + "ACCORDING TO COPYRIGHT LAW.\n" + "PLEASE REFER TO\n" + "YOUR NINTENDO GAME\n" + "INSTRUCTION BOOKLET\n" + "FOR FURTHER INFORMATION."); + + BSOD_PAUSE (bst, 1000000 * 60); + return bst; +} + + /* An Android phone boot loader, by jwz. */ static struct bsod_state * @@ -5930,6 +6040,8 @@ static const struct { { "VMware", vmware }, { "Encom", encom }, { "DVD", dvd }, + { "Tivo", tivo }, + { "Nintendo", nintendo }, }; @@ -6247,10 +6359,12 @@ static const char *bsod_defaults [] = { "*doNvidia: True", "*doATM: True", "*doGLaDOS: True", - "*doAndroid: True", + "*doAndroid: False", "*doVMware: True", "*doEncom: True", "*doDVD: True", + "*doTivo: True", + "*doNintendo: True", ".foreground: White", ".background: Black", @@ -6362,6 +6476,13 @@ static const char *bsod_defaults [] = { ".vmware.foreground2: Yellow", ".vmware.background: #a700a8", /* purple */ + ".tivo.background: #339020", + ".tivo.foreground: #B8E6BA", + + ".nintendo.background: #F76D0A", + ".nintendo.background2: #085C89", + ".nintendo.foreground: #EEAACF", + "*dontClearRoot: True", ANALOGTV_DEFAULTS @@ -6370,6 +6491,8 @@ static const char *bsod_defaults [] = { "*useSHM: True", #endif + ".lowrez: false", /* This is required on macOS */ + "*fontB: ", "*fontC: ", @@ -6400,6 +6523,11 @@ static const char *bsod_defaults [] = { ".ransomware.fontB: Arial 9, Helvetica 9", ".ransomware.fontC: Arial Bold 11, Arial-BoldMT 11, Helvetica Bold 11", + ".tivo.font: Helvetica-Bold 13", + ".tivo.fontB: Helvetica-Bold 17", + + ".nintendo.font: PxPlus IBM VGA8 18, Courier-Bold 18", + # elif defined(HAVE_ANDROID) "*font: PxPlus IBM VGA8 16", @@ -6424,6 +6552,11 @@ static const char *bsod_defaults [] = { ".ransomware.fontB: -*-helvetica-medium-r-*-*-*-80-*-*-*-*-*-*", ".ransomware.fontC: -*-helvetica-bold-r-*-*-*-100-*-*-*-*-*-*", + ".tivo.font: -*-helvetica-medium-r-*-*-*-180-*-*-*-*-*-*", + ".tivo.fontB: -*-helvetica-bold-r-*-*-*-240-*-*-*-*-*-*", + + ".nintendo.font: PxPlus IBM VGA8 18", + # elif defined(HAVE_COCOA) "*font: PxPlus IBM VGA8 8, Courier Bold 9", @@ -6455,10 +6588,16 @@ static const char *bsod_defaults [] = { ".win10.fontB: Arial 100, Helvetica 100", ".win10.fontC: Arial 16, Helvetica 16", - ".ransomware.font: Arial 24, Helvetica 24", - ".ransomware.bigFont: Arial 24, Helvetica 24", - ".ransomware.fontB: Arial 16, Helvetica 16", - ".ransomware.fontC: Arial Bold 24, Helvetica Bold 24", + ".ransomware.font: Arial 24, Helvetica 24", + ".ransomware.bigFont: Arial 24, Helvetica 24", + ".ransomware.fontB: Arial 16, Helvetica 16", + ".ransomware.fontC: Arial Bold 24, Helvetica Bold 24", + + ".tivo.font: Helvetica 36", + ".tivo.fontB: Helvetica 48", + + ".nintendo.font: PxPlus IBM VGA8 12, Courier Bold 12", + ".nintendo.bigFont: PxPlus IBM VGA8 48, Courier Bold 48", # else /* X11 */ @@ -6506,6 +6645,11 @@ static const char *bsod_defaults [] = { ".ransomware.fontB: -*-helvetica-medium-r-*-*-*-140-*-*-*-*-*-*", ".ransomware.fontC: -*-helvetica-bold-r-*-*-*-180-*-*-*-*-*-*", + ".tivo.font: -*-helvetica-medium-r-*-*-*-180-*-*-*-*-*-*", + ".tivo.fontB: -*-helvetica-bold-r-*-*-*-240-*-*-*-*-*-*", + + ".nintendo.font: -*-courier-bold-r-*-*-*-180-*-*-m-*-*-*", + ".nintendo.bigFont: -*-courier-bold-r-*-*-*-360-*-*-m-*-*-*", # endif /* X11 */ @@ -6580,8 +6724,12 @@ static const XrmOptionDescRec bsod_options [] = { { "-no-vmware", ".doVMware", XrmoptionNoArg, "False" }, { "-encom", ".doEncom", XrmoptionNoArg, "True" }, { "-no-encom", ".doEncom", XrmoptionNoArg, "False" }, - { "-dvd", ".doDVD", XrmoptionNoArg, "True" }, - { "-no-dvd", ".doDVD", XrmoptionNoArg, "False" }, + { "-dvd", ".doDVD", XrmoptionNoArg, "True" }, + { "-no-dvd", ".doDVD", XrmoptionNoArg, "False" }, + { "-tivo", ".doTivo", XrmoptionNoArg, "True" }, + { "-no-tivo", ".doTivo", XrmoptionNoArg, "False" }, + { "-nintendo", ".doNintendo", XrmoptionNoArg, "True" }, + { "-no-nintendo", ".doNintendo", XrmoptionNoArg, "False" }, ANALOGTV_OPTIONS { 0, 0, 0, 0 } }; diff --git a/hacks/compile_axp.com b/hacks/compile_axp.com index 9fab007..caf116c 100644 --- a/hacks/compile_axp.com +++ b/hacks/compile_axp.com @@ -111,6 +111,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) RORSCHACH.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ROTOR.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ROTZOOMER.C +$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SCOOTER.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SCREENHACK.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SHADEBOBS.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SIERPINSKI.C diff --git a/hacks/compile_decc.com b/hacks/compile_decc.com index 9fab007..caf116c 100644 --- a/hacks/compile_decc.com +++ b/hacks/compile_decc.com @@ -111,6 +111,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) RORSCHACH.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ROTOR.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) ROTZOOMER.C +$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SCOOTER.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SCREENHACK.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SHADEBOBS.C $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) SIERPINSKI.C diff --git a/hacks/config/README b/hacks/config/README index 58c4195..5ba2e7b 100644 --- a/hacks/config/README +++ b/hacks/config/README @@ -4,8 +4,8 @@ a screen saver and locker for the X window system by Jamie Zawinski - version 5.43 - 09-Jul-2019 + version 5.44 + 20-Mar-2020 https://www.jwz.org/xscreensaver/ diff --git a/hacks/config/bsod.xml b/hacks/config/bsod.xml index 0d18218..6a3ac4a 100644 --- a/hacks/config/bsod.xml +++ b/hacks/config/bsod.xml @@ -24,7 +24,7 @@ - + @@ -43,19 +43,21 @@ - + + + - + diff --git a/hacks/config/deepstars.xml b/hacks/config/deepstars.xml index e1118e2..d690d2d 100644 --- a/hacks/config/deepstars.xml +++ b/hacks/config/deepstars.xml @@ -19,6 +19,8 @@ _label="Smear" _low-label="Low" _high-label="High" low="0.1" high="5.0" default="1.0"/> + + <_description> diff --git a/hacks/config/dnalogo.xml b/hacks/config/dnalogo.xml index ac10f15..48cd2ee 100644 --- a/hacks/config/dnalogo.xml +++ b/hacks/config/dnalogo.xml @@ -33,18 +33,6 @@ DNA Lounge San Francisco, CA 94103 -Codeword - - Restaurant -- Bar -- Nightclub -- Cafe -- Est. 2015. - - 917 Folsom Street - San Francisco, CA - 94107 - - https://www.dnalounge.com/ - http://www.dnapizza.com/ - https://www.codeword-sf.com/ - Written by Jamie Zawinski; 2001. diff --git a/hacks/config/etruscanvenus.xml b/hacks/config/etruscanvenus.xml new file mode 100644 index 0000000..090b102 --- /dev/null +++ b/hacks/config/etruscanvenus.xml @@ -0,0 +1,143 @@ + + + + + diff --git a/hacks/config/gibson.xml b/hacks/config/gibson.xml new file mode 100644 index 0000000..3e69a9c --- /dev/null +++ b/hacks/config/gibson.xml @@ -0,0 +1,65 @@ + + + + + + + diff --git a/hacks/config/hypertorus.xml b/hacks/config/hypertorus.xml index a82e090..899d0cb 100644 --- a/hacks/config/hypertorus.xml +++ b/hacks/config/hypertorus.xml @@ -40,10 +40,14 @@ + + -