summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Swanson2021-01-12 02:04:29 -0800
committerMike Swanson2021-01-12 02:04:29 -0800
commit011c52b0c7c9a0d4ac5a53e684a96eef805bd8eb (patch)
treebdd2f3380e6fb19d224f6f485d00ebeaa0a23bf7
parentcb9e5d5cdea81f191988e0c9636085fcc20b3eb6 (diff)
downloadaur-011c52b0c7c9a0d4ac5a53e684a96eef805bd8eb.tar.gz
Update to 5.10.0
-rw-r--r--.SRCINFO14
-rw-r--r--0001-prevent-crashes-with-simultaneous-use-of-record-and-.patch26
-rw-r--r--0002-Support-widescreen-assets.-674.patch337
-rw-r--r--0003-force-status-bar-refresh-in-the-Main-Episode-and-Ski.patch50
-rw-r--r--PKGBUILD14
5 files changed, 8 insertions, 433 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 54261548cadc..7401694f1936 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = crispy-doom
pkgdesc = Vanilla-compatible enhanced Doom engine
- pkgver = 5.9.2
- pkgrel = 3
+ pkgver = 5.10.0
+ pkgrel = 1
url = http://fabiangreffrath.github.io/crispy-doom
install = crispy-doom.install
arch = i686
@@ -16,14 +16,8 @@ pkgbase = crispy-doom
optdepends = freedm: Free deathmatch game
optdepends = freedoom1: Free Ultimate Doom-compatible game
optdepends = freedoom2: Free Doom II-compatible game
- source = https://github.com/fabiangreffrath/crispy-doom/archive/crispy-doom-5.9.2.tar.gz
- source = 0001-prevent-crashes-with-simultaneous-use-of-record-and-.patch
- source = 0002-Support-widescreen-assets.-674.patch
- source = 0003-force-status-bar-refresh-in-the-Main-Episode-and-Ski.patch
- b2sums = 63d9a89d6099485c79ff4cad69975de790b32a4ece4bded172ebf771a2bf1b4dcd21ab58383ca3c5eea32a4eff72e65ec0e3a283c85f1bc62be680de04f88e52
- b2sums = 3a48523211db97019993bf57dcecb376872a2858f6d482ca4210444ef7f25337d88f44bd4eeac01ed60d024521ffcfe027b0a39006c7c643c9c6cf004b2808f1
- b2sums = ca952dc981b520bc30871f34e9e02c0697c9a7700fd502f30cef0fee4c86ee77b8b5563b3815bf8749ed5f3e8961443699ad0f25e7f9a71f3a39a9f0c2e98067
- b2sums = 4dfa31e71a5ea7c2de31e2b1b8caf888832487f774a62f7012909b459bff048738828a2ed721367decddeb02688e7765062127ae44e34f4c24c1e6f2cf24c321
+ source = https://github.com/fabiangreffrath/crispy-doom/archive/crispy-doom-5.10.0.tar.gz
+ b2sums = 67112cdb0b8a4caa1de9fc3fcd752be8775d154a5df194941bd1a024f607c9b7f0925994ed236a6e8f9579910af8dd29585f9fce77f72a1c20ab66177f7bca4d
pkgname = crispy-doom
diff --git a/0001-prevent-crashes-with-simultaneous-use-of-record-and-.patch b/0001-prevent-crashes-with-simultaneous-use-of-record-and-.patch
deleted file mode 100644
index 1269d133005c..000000000000
--- a/0001-prevent-crashes-with-simultaneous-use-of-record-and-.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 211dd1a8b36dc5fecd4bc5149f54ffc1a6a85315 Mon Sep 17 00:00:00 2001
-From: Fabian Greffrath <fabian@greffrath.com>
-Date: Tue, 22 Sep 2020 12:18:33 +0200
-Subject: [PATCH 1/3] prevent crashes with simultaneous use of -record and
- -pistolstart
-
-Thanks Spie812.
----
- src/doom/g_game.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/doom/g_game.c b/src/doom/g_game.c
-index 934d8bf7..84332889 100644
---- a/src/doom/g_game.c
-+++ b/src/doom/g_game.c
-@@ -886,6 +886,7 @@ void G_DoLoadLevel (void)
- const char message[] = "The -pistolstart option is not suppported"
- " for demos and\n"
- " network play.";
-+ if (!demo_p) demorecording = false;
- I_Error(message);
- }
- }
---
-2.30.0
-
diff --git a/0002-Support-widescreen-assets.-674.patch b/0002-Support-widescreen-assets.-674.patch
deleted file mode 100644
index ce580d5810e0..000000000000
--- a/0002-Support-widescreen-assets.-674.patch
+++ /dev/null
@@ -1,337 +0,0 @@
-From 084c1b968d7b97942771af7b416656c6c34d81bc Mon Sep 17 00:00:00 2001
-From: James Canete <SmileTheory@gmail.com>
-Date: Thu, 8 Oct 2020 23:19:03 -0700
-Subject: [PATCH 2/3] Support widescreen assets. (#674)
-
-* Support widescreen assets.
-
-* Simplify widescreen finale code.
-
-* Add widescreen ratio selection.
-
-* Requested changes.
-
-* Uncapitalize false.
----
- src/crispy.h | 10 +++++++++
- src/doom/f_finale.c | 51 +++++++++++++++++++++++++++++++++------------
- src/doom/m_crispy.c | 11 +++++++++-
- src/doom/m_crispy.h | 1 +
- src/doom/m_menu.c | 2 +-
- src/doom/st_stuff.c | 10 ++++++++-
- src/i_video.c | 22 ++++++++++++++++++-
- src/v_video.c | 41 ++++++++++++++++++------------------
- 8 files changed, 111 insertions(+), 37 deletions(-)
-
-diff --git a/src/crispy.h b/src/crispy.h
-index f58b36bb..16eb0552 100644
---- a/src/crispy.h
-+++ b/src/crispy.h
-@@ -222,4 +222,14 @@ enum
- NUM_WIDGETS
- };
-
-+enum
-+{
-+ RATIO_4_3,
-+ RATIO_MATCH_SCREEN,
-+ RATIO_16_10,
-+ RATIO_16_9,
-+ RATIO_21_9,
-+ NUM_RATIOS
-+};
-+
- #endif
-diff --git a/src/doom/f_finale.c b/src/doom/f_finale.c
-index 97ebe722..b07127dd 100644
---- a/src/doom/f_finale.c
-+++ b/src/doom/f_finale.c
-@@ -890,8 +890,8 @@ F_DrawPatchCol
- pixel_t* desttop;
- int count;
-
-- column = (column_t *)((byte *)patch + LONG(patch->columnofs[col >> FRACBITS]));
-- desttop = I_VideoBuffer + x + (WIDESCREENDELTA << crispy->hires);
-+ column = (column_t *)((byte *)patch + LONG(patch->columnofs[col]));
-+ desttop = I_VideoBuffer + x;
-
- // step through the posts in a column
- while (column->topdelta != 0xff )
-@@ -924,19 +924,43 @@ void F_BunnyScroll (void)
- char name[10];
- int stage;
- static int laststage;
-+ int p2offset, p1offset, pillar_width;
-
- dxi = (ORIGWIDTH << FRACBITS) / NONWIDEWIDTH;
- dy = (SCREENHEIGHT << FRACBITS) / ORIGHEIGHT;
- dyi = (ORIGHEIGHT << FRACBITS) / SCREENHEIGHT;
-
-+ p1 = W_CacheLumpName (DEH_String("PFUB2"), PU_LEVEL);
-+ p2 = W_CacheLumpName (DEH_String("PFUB1"), PU_LEVEL);
-+
- // [crispy] fill pillarboxes in widescreen mode
-- if (SCREENWIDTH != NONWIDEWIDTH)
-+ pillar_width = (SCREENWIDTH - (p1->width << FRACBITS) / dxi) / 2;
-+
-+ if (pillar_width > 0)
-+ {
-+ V_DrawFilledBox(0, 0, pillar_width, SCREENHEIGHT, 0);
-+ V_DrawFilledBox(SCREENWIDTH - pillar_width, 0, pillar_width, SCREENHEIGHT, 0);
-+ }
-+ else
- {
-- V_DrawFilledBox(0, 0, SCREENWIDTH, SCREENHEIGHT, 0);
-+ pillar_width = 0;
- }
-
-- p1 = W_CacheLumpName (DEH_String("PFUB2"), PU_LEVEL);
-- p2 = W_CacheLumpName (DEH_String("PFUB1"), PU_LEVEL);
-+ // Calculate the portion of PFUB2 that would be offscreen at original res.
-+ p1offset = (ORIGWIDTH - p1->width) / 2;
-+
-+ if (p2->width == ORIGWIDTH)
-+ {
-+ // Unity or original PFUBs.
-+ // PFUB1 only contains the pixels that scroll off.
-+ p2offset = ORIGWIDTH - p1offset;
-+ }
-+ else
-+ {
-+ // Widescreen mod PFUBs.
-+ // Right side of PFUB2 and left side of PFUB1 are identical.
-+ p2offset = ORIGWIDTH + p1offset;
-+ }
-
- V_MarkRect (0, 0, SCREENWIDTH, SCREENHEIGHT);
-
-@@ -945,14 +969,15 @@ void F_BunnyScroll (void)
- scrolled = ORIGWIDTH;
- if (scrolled < 0)
- scrolled = 0;
-- scrolled <<= FRACBITS;
--
-- for ( x=0 ; x<ORIGWIDTH << FRACBITS; x+=dxi)
-+
-+ for (x = pillar_width; x < SCREENWIDTH - pillar_width; x++)
- {
-- if (x+scrolled < ORIGWIDTH << FRACBITS)
-- F_DrawPatchCol (x/dxi, p1, x+scrolled);
-- else
-- F_DrawPatchCol (x/dxi, p2, x+scrolled - (ORIGWIDTH << FRACBITS));
-+ int x2 = ((x * dxi) >> FRACBITS) - WIDESCREENDELTA + scrolled;
-+
-+ if (x2 < p2offset)
-+ F_DrawPatchCol (x, p1, x2 - p1offset);
-+ else
-+ F_DrawPatchCol (x, p2, x2 - p2offset);
- }
-
- if (finalecount < 1130)
-diff --git a/src/doom/m_crispy.c b/src/doom/m_crispy.c
-index 01a61811..7ecc48f4 100644
---- a/src/doom/m_crispy.c
-+++ b/src/doom/m_crispy.c
-@@ -135,6 +135,15 @@ multiitem_t multiitem_widgets[NUM_WIDGETS] =
- {WIDGETS_ALWAYS, "always"},
- };
-
-+multiitem_t multiitem_widescreen[NUM_RATIOS] =
-+{
-+ {RATIO_4_3, "4:3"},
-+ {RATIO_MATCH_SCREEN, "Match screen"},
-+ {RATIO_16_10, "16:10"},
-+ {RATIO_16_9, "16:9"},
-+ {RATIO_21_9, "21:9"},
-+};
-+
- extern void AM_LevelInit (boolean reinit);
- extern void EnableLoadingDisk (void);
- extern void P_SegLengths (boolean contrast_only);
-@@ -537,7 +546,7 @@ void M_CrispyToggleWeaponSquat(int choice)
-
- static void M_CrispyToggleWidescreenHook (void)
- {
-- crispy->widescreen = !crispy->widescreen;
-+ crispy->widescreen = (crispy->widescreen + 1) % NUM_RATIOS;
-
- // [crispy] no need to re-init when switching from wide to compact
- {
-diff --git a/src/doom/m_crispy.h b/src/doom/m_crispy.h
-index 954c9432..5897e6fc 100644
---- a/src/doom/m_crispy.h
-+++ b/src/doom/m_crispy.h
-@@ -41,6 +41,7 @@ extern multiitem_t multiitem_sndchannels[4];
- extern multiitem_t multiitem_secretmessage[NUM_SECRETMESSAGE];
- extern multiitem_t multiitem_translucency[NUM_TRANSLUCENCY];
- extern multiitem_t multiitem_widgets[NUM_WIDGETS];
-+extern multiitem_t multiitem_widescreen[NUM_RATIOS];
-
- extern void M_CrispyToggleAutomapstats(int choice);
- extern void M_CrispyToggleBobfactor(int choice);
-diff --git a/src/doom/m_menu.c b/src/doom/m_menu.c
-index 4f813a40..3e21f1be 100644
---- a/src/doom/m_menu.c
-+++ b/src/doom/m_menu.c
-@@ -1480,7 +1480,7 @@ static void M_DrawCrispness1(void)
-
- M_DrawCrispnessSeparator(crispness_sep_rendering, "Rendering");
- M_DrawCrispnessItem(crispness_hires, "High Resolution Rendering", crispy->hires, true);
-- M_DrawCrispnessItem(crispness_widescreen, "Widescreen Rendering", crispy->widescreen, aspect_ratio_correct);
-+ M_DrawCrispnessMultiItem(crispness_widescreen, "Widescreen Aspect Ratio", multiitem_widescreen, crispy->widescreen, aspect_ratio_correct);
- M_DrawCrispnessItem(crispness_uncapped, "Uncapped Framerate", crispy->uncapped, true);
- M_DrawCrispnessItem(crispness_vsync, "Enable VSync", crispy->vsync, !force_software_renderer);
- M_DrawCrispnessItem(crispness_smoothscaling, "Smooth Pixel Scaling", crispy->smoothscaling, true);
-diff --git a/src/doom/st_stuff.c b/src/doom/st_stuff.c
-index 3320eca5..1e025f23 100644
---- a/src/doom/st_stuff.c
-+++ b/src/doom/st_stuff.c
-@@ -502,7 +502,15 @@ void ST_refreshBackground(boolean force)
- }
- }
-
-- V_DrawPatch(ST_X, 0, sbar);
-+ // [crispy] center unity rerelease wide status bar
-+ if (sbar->width > ORIGWIDTH && sbar->leftoffset == 0)
-+ {
-+ V_DrawPatch(ST_X + (ORIGWIDTH - sbar->width) / 2, 0, sbar);
-+ }
-+ else
-+ {
-+ V_DrawPatch(ST_X, 0, sbar);
-+ }
-
- // draw right side of bar if needed (Doom 1.0)
- if (sbarr)
-diff --git a/src/i_video.c b/src/i_video.c
-index 93ffed65..37621b56 100644
---- a/src/i_video.c
-+++ b/src/i_video.c
-@@ -315,7 +315,9 @@ static void AdjustWindowSize(void)
- {
- if (aspect_ratio_correct || integer_scaling)
- {
-- if (window_width * actualheight <= window_height * SCREENWIDTH)
-+ // [crispy] always adjust window width only, otherwise repeatedly
-+ // changing widescreen settings causes the window to shrink.
-+ if (window_width * actualheight <= window_height * SCREENWIDTH && false)
- {
- // We round up window_height if the ratio is not exact; this leaves
- // the result stable.
-@@ -1551,6 +1553,24 @@ void I_GetScreenDimensions (void)
- // [crispy] widescreen rendering makes no sense without aspect ratio correction
- if (crispy->widescreen && aspect_ratio_correct)
- {
-+ switch(crispy->widescreen)
-+ {
-+ case RATIO_16_10:
-+ w = 16;
-+ h = 10;
-+ break;
-+ case RATIO_16_9:
-+ w = 16;
-+ h = 9;
-+ break;
-+ case RATIO_21_9:
-+ w = 21;
-+ h = 9;
-+ break;
-+ default:
-+ break;
-+ }
-+
- SCREENWIDTH = w * ah / h;
- // [crispy] make sure SCREENWIDTH is an integer multiple of 4 ...
- SCREENWIDTH = (SCREENWIDTH + 3) & (int)~3;
-diff --git a/src/v_video.c b/src/v_video.c
-index da5fa175..933109ec 100644
---- a/src/v_video.c
-+++ b/src/v_video.c
-@@ -236,20 +236,23 @@ void V_DrawPatch(int x, int y, patch_t *patch)
- V_MarkRect(x, y, SHORT(patch->width), SHORT(patch->height));
-
- col = 0;
-+ if (x < 0)
-+ {
-+ col += dxi * ((-x * dx) >> FRACBITS);
-+ x = 0;
-+ }
-+
- desttop = dest_screen + ((y * dy) >> FRACBITS) * SCREENWIDTH + ((x * dx) >> FRACBITS);
-
- w = SHORT(patch->width);
-
-+ // convert x to screen position
-+ x = (x * dx) >> FRACBITS;
-+
- for ( ; col<w << FRACBITS ; x++, col+=dxi, desttop++)
- {
- int topdelta = -1;
-
-- // [crispy] too far left
-- if (x < 0)
-- {
-- continue;
-- }
--
- // [crispy] too far right / width
- if (x >= SCREENWIDTH)
- {
-@@ -305,13 +308,7 @@ void V_DrawPatch(int x, int y, patch_t *patch)
-
- void V_DrawPatchFullScreen(patch_t *patch, boolean flipped)
- {
-- const short width = SHORT(patch->width);
-- const short height = SHORT(patch->height);
--
-- dx = (NONWIDEWIDTH << FRACBITS) / ORIGWIDTH;
-- dxi = (width << FRACBITS) / NONWIDEWIDTH;
-- dy = (SCREENHEIGHT << FRACBITS) / height;
-- dyi = (height << FRACBITS) / SCREENHEIGHT;
-+ int x = ((SCREENWIDTH >> crispy->hires) - patch->width) / 2 - WIDESCREENDELTA;
-
- patch->leftoffset = 0;
- patch->topoffset = 0;
-@@ -324,17 +321,12 @@ void V_DrawPatchFullScreen(patch_t *patch, boolean flipped)
-
- if (flipped)
- {
-- V_DrawPatchFlipped(0, 0, patch);
-+ V_DrawPatchFlipped(x, 0, patch);
- }
- else
- {
-- V_DrawPatch(0, 0, patch);
-+ V_DrawPatch(x, 0, patch);
- }
--
-- dx = (NONWIDEWIDTH << FRACBITS) / ORIGWIDTH;
-- dxi = (ORIGWIDTH << FRACBITS) / NONWIDEWIDTH;
-- dy = (SCREENHEIGHT << FRACBITS) / ORIGHEIGHT;
-- dyi = (ORIGHEIGHT << FRACBITS) / SCREENHEIGHT;
- }
-
- //
-@@ -377,10 +369,19 @@ void V_DrawPatchFlipped(int x, int y, patch_t *patch)
- V_MarkRect (x, y, SHORT(patch->width), SHORT(patch->height));
-
- col = 0;
-+ if (x < 0)
-+ {
-+ col += dxi * ((-x * dx) >> FRACBITS);
-+ x = 0;
-+ }
-+
- desttop = dest_screen + ((y * dy) >> FRACBITS) * SCREENWIDTH + ((x * dx) >> FRACBITS);
-
- w = SHORT(patch->width);
-
-+ // convert x to screen position
-+ x = (x * dx) >> FRACBITS;
-+
- for ( ; col<w << FRACBITS ; x++, col+=dxi, desttop++)
- {
- int topdelta = -1;
---
-2.30.0
-
diff --git a/0003-force-status-bar-refresh-in-the-Main-Episode-and-Ski.patch b/0003-force-status-bar-refresh-in-the-Main-Episode-and-Ski.patch
deleted file mode 100644
index 48e41425c580..000000000000
--- a/0003-force-status-bar-refresh-in-the-Main-Episode-and-Ski.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 62db15a6c4cc3bbee9fd35e85bd0c6c5fe5ae98b Mon Sep 17 00:00:00 2001
-From: Fabian Greffrath <fabian@greffrath.com>
-Date: Thu, 7 Jan 2021 10:18:31 +0100
-Subject: [PATCH 3/3] force status bar refresh in the Main, Episode and Skill
- menus
-
-Thanks @JNechaevsky.
-
-https://github.com/JNechaevsky/russian-doom/commit/968b7844d8cb8623683024345187c503b66ed806
----
- src/doom/m_menu.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/src/doom/m_menu.c b/src/doom/m_menu.c
-index 3e21f1be..0978ce3a 100644
---- a/src/doom/m_menu.c
-+++ b/src/doom/m_menu.c
-@@ -1236,6 +1236,9 @@ void M_MusicVol(int choice)
- //
- void M_DrawMainMenu(void)
- {
-+ // [crispy] force status bar refresh
-+ inhelpscreens = true;
-+
- V_DrawPatchDirect(94, 2,
- W_CacheLumpName(DEH_String("M_DOOM"), PU_CACHE));
- }
-@@ -1248,6 +1251,9 @@ void M_DrawMainMenu(void)
- //
- void M_DrawNewGame(void)
- {
-+ // [crispy] force status bar refresh
-+ inhelpscreens = true;
-+
- V_DrawPatchDirect(96, 14, W_CacheLumpName(DEH_String("M_NEWG"), PU_CACHE));
- V_DrawPatchDirect(54, 38, W_CacheLumpName(DEH_String("M_SKILL"), PU_CACHE));
- }
-@@ -1282,6 +1288,9 @@ int epi;
-
- void M_DrawEpisode(void)
- {
-+ // [crispy] force status bar refresh
-+ inhelpscreens = true;
-+
- V_DrawPatchDirect(54, 38, W_CacheLumpName(DEH_String("M_EPISOD"), PU_CACHE));
- }
-
---
-2.30.0
-
diff --git a/PKGBUILD b/PKGBUILD
index 09f9d5640b18..b5091771ed00 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,8 +2,8 @@
pkgname=crispy-doom
pkgdesc="Vanilla-compatible enhanced Doom engine"
-pkgver=5.9.2
-pkgrel=3
+pkgver=5.10.0
+pkgrel=1
arch=('i686' 'x86_64')
url="http://fabiangreffrath.github.io/crispy-doom"
license=('GPL2')
@@ -13,14 +13,8 @@ optdepends=('freedm: Free deathmatch game'
'freedoom1: Free Ultimate Doom-compatible game'
'freedoom2: Free Doom II-compatible game')
install=crispy-doom.install
-source=(https://github.com/fabiangreffrath/$pkgname/archive/$pkgname-$pkgver.tar.gz
- 0001-prevent-crashes-with-simultaneous-use-of-record-and-.patch
- 0002-Support-widescreen-assets.-674.patch
- 0003-force-status-bar-refresh-in-the-Main-Episode-and-Ski.patch)
-b2sums=('63d9a89d6099485c79ff4cad69975de790b32a4ece4bded172ebf771a2bf1b4dcd21ab58383ca3c5eea32a4eff72e65ec0e3a283c85f1bc62be680de04f88e52'
- '3a48523211db97019993bf57dcecb376872a2858f6d482ca4210444ef7f25337d88f44bd4eeac01ed60d024521ffcfe027b0a39006c7c643c9c6cf004b2808f1'
- 'ca952dc981b520bc30871f34e9e02c0697c9a7700fd502f30cef0fee4c86ee77b8b5563b3815bf8749ed5f3e8961443699ad0f25e7f9a71f3a39a9f0c2e98067'
- '4dfa31e71a5ea7c2de31e2b1b8caf888832487f774a62f7012909b459bff048738828a2ed721367decddeb02688e7765062127ae44e34f4c24c1e6f2cf24c321')
+source=(https://github.com/fabiangreffrath/$pkgname/archive/$pkgname-$pkgver.tar.gz)
+b2sums=('67112cdb0b8a4caa1de9fc3fcd752be8775d154a5df194941bd1a024f607c9b7f0925994ed236a6e8f9579910af8dd29585f9fce77f72a1c20ab66177f7bca4d')
prepare() {
cd "$pkgname-$pkgname-$pkgver"