doomlegacy-devel: Update to SVN revision 1547

DeepSea tall patches are supported now.
This commit is contained in:
Michael Baeuerle 2020-09-02 19:34:03 +02:00
parent 92fd532fe2
commit 61349dc1b4
6 changed files with 18 additions and 137 deletions

View File

@ -2,7 +2,7 @@
VERS= 1.48.4
#PKGNAME= doomlegacy-${VERS}
SVNVERS= 1545
SVNVERS= 1547
DISTNAME= doomlegacy-devel-0r${SVNVERS}
CATEGORIES= games

View File

@ -43,6 +43,11 @@ Part 10: Some textures show pink/black/pink stripes
Just a cosmetic problem.
[X] Created upstream bug report #663
Reason was missing support for DeepSea tall patches (see Part 12)
Fixed in SVN revision 1547
=> Works as expected
Part 10 finished.
Part 11: Resurrect SunOS codepath
@ -55,6 +60,7 @@ Part 11: Resurrect SunOS codepath
Located in libresolv on SunOS
[X] Use fcntl() instead of ioctl() to enable non-blocking mode of socket
Should be usable for all POSIX conformant operating systems
[X] Created upstream bug report #666
Part 12: Support for DeePsea tall patches in textures and sprites
@ -64,9 +70,17 @@ http://jnechaevsky.users.sourceforge.net/files/512x512.wad
[X] Import general support from Crispy Doom
[X] Tested to work for sprites with software renderer
[ ] Make it work for textures with hardware renderer
The hardware renderer still has some problems (HOM with specific viewing
angles)
[X] Make it work for textures with hardware renderer
[X] Propose reduced patchset upstream
=> Support for DeepSea tall patches was added in SVN revision 1547
[X] Test upstream patches
=> Works now with software and hardware renderer
[X] Remove pkgsrc patches for DeepSea tall patches
The hardware renderer still has some problems (HOM with specific viewing
angles). This looks unrelated to the texture format.
Part 12 finished.
EOF

View File

@ -8,12 +8,9 @@ SHA1 (patch-src_Makefile) = 34c323bdd96787cb6afe0be5dc99b129ab8f1552
SHA1 (patch-src_am__map.c) = 14b3c8b70c63778ad043827ab2f0b6f4fe07bcde
SHA1 (patch-src_doomdata.h) = 8c3186dafbf11a8a75262a06755dd9807cb58612
SHA1 (patch-src_dstrings.c) = 16e50ac649f76d415b820a0e5093d15af3180e6d
SHA1 (patch-src_hardware_hw__cache.c) = 66788b64c1cb2008a0de9cddd4c8142269633af0
SHA1 (patch-src_i__tcp.c) = 3b58113fa9d6e49b5e45ea615f1fab6e893b2eb4
SHA1 (patch-src_mserv.c) = ac024a322b39a37083c821ccb14fb4e520a89343
SHA1 (patch-src_p__local.h) = e429f2ce5d60dd538bc5e796847b53ae72604b33
SHA1 (patch-src_p__setup.c) = dcdd64c1ae97dc7f9cdccc834b6f34d301e124f5
SHA1 (patch-src_r__data.c) = cee177a2af8d29c2e78019d17dbd53d256b34529
SHA1 (patch-src_r__defs.h) = 91e6543674e3474c9afdb0ba19d6869b658d0543
SHA1 (patch-src_r__things.c) = e0846082f79a3bdbafbec0345268e6ba1baf6f70
SHA1 (patch-src_t__prepro.h) = 935f43fcebdfe22cbafc8c9a1978cbf91a4c46a1

View File

@ -1,39 +0,0 @@
$NetBSD$
Support for DeePsea tall patches:
https://doomwiki.org/wiki/Picture_format#Tall_patches
This patch is for the hardware renderer.
--- src/hardware/hw_cache.c.orig 2020-07-07 09:01:37.000000000 +0000
+++ src/hardware/hw_cache.c
@@ -219,6 +219,8 @@ void HWR_DrawPatchInCache (Mipmap_t* mip
for (block += col*bytepp; ncols--; block+=bytepp, xfrac+=xfracstep)
{
+ int top = -1; // [MB] 2020-08-21: Support for DeePsea tall patches
+
patchcol = (column_t *)((byte *)sw_patch
+ sw_patch->columnofs[xfrac>>16]);
@@ -226,9 +228,19 @@ void HWR_DrawPatchInCache (Mipmap_t* mip
while (patchcol->topdelta != 0xff)
{
+ // [MB] 2020-08-21: Support for DeePsea tall patches
+ if (patchcol->topdelta <= top)
+ {
+ top += patchcol->topdelta;
+ }
+ else
+ {
+ top = patchcol->topdelta;
+ }
source = (byte *)patchcol + 3;
count = ((patchcol->length * scale_y) + (FRACUNIT/2)) >> 16;
- ypos = originy + patchcol->topdelta;
+ ypos = originy + top;
+ //ypos = originy + patchcol->topdelta;
yfrac = 0;
//yfracstep = (patchcol->length << 16) / count;

View File

@ -1,40 +0,0 @@
$NetBSD$
Support for DeePsea tall patches in textures.
New code is based on Crispy Doom Git commit:
c97a5c1d8054eab46856f71e4998d71760aa3339
--- src/r_data.c.orig 2020-07-07 09:01:41.000000000 +0000
+++ src/r_data.c
@@ -613,6 +613,7 @@ void R_DrawColumnInCache ( column_t*
{
int count;
int position; // dest
+ int top = -1; // [crispy] Support for DeePsea tall patches
byte* source;
// byte* dest;
@@ -622,11 +623,21 @@ void R_DrawColumnInCache ( column_t*
// Column is a series of posts (post_t), terminated by 0xFF
while (colpost->topdelta != 0xff) // end of posts
{
+ // [crispy] Support for DeePsea tall patches
+ if (colpost->topdelta <= top)
+ {
+ top += colpost->topdelta;
+ }
+ else
+ {
+ top = colpost->topdelta;
+ }
// post has 2 byte header (post_t),
// and has extra byte before and after pixel data
source = (byte *)colpost + 3; // pixel data after post header
count = colpost->length;
- position = originy + colpost->topdelta; // position in dest
+ position = originy + top; // [crispy] Support for DeePsea tall patches
+ //position = originy + colpost->topdelta; // position in dest
if (position < 0)
{

View File

@ -1,51 +0,0 @@
$NetBSD$
Support for DeePsea tall patches in sprites (and masked mid textures):
https://doomwiki.org/wiki/Picture_format#Tall_patches
New code is based on Crispy Doom Git commit:
c97a5c1d8054eab46856f71e4998d71760aa3339
--- src/r_things.c.orig 2020-07-07 09:01:40.000000000 +0000
+++ src/r_things.c
@@ -1097,15 +1097,27 @@ fixed_t dm_texturemid;
void R_DrawMaskedColumn ( byte * column_data )
{
fixed_t top_post_sc, bottom_post_sc; // fixed_t screen coord.
+ int top = -1; // [crispy] Support for DeePsea tall patches
column_t * column = (column_t*) column_data;
// over all column posts for this column
for ( ; column->topdelta != 0xff ; )
{
+ // [crispy] Support for DeePsea tall patches
+ if (column->topdelta <= top)
+ {
+ top += column->topdelta;
+ }
+ else
+ {
+ top = column->topdelta;
+ }
// calculate unclipped screen coordinates
// for post
- top_post_sc = dm_top_patch + dm_yscale*column->topdelta;
+ // [crispy] Support for DeePsea tall patches
+ top_post_sc = dm_top_patch + dm_yscale*top;
+ //top_post_sc = dm_top_patch + dm_yscale*column->topdelta;
bottom_post_sc = (dm_bottom_patch == FIXED_MAX) ?
top_post_sc + dm_yscale*column->length
: dm_bottom_patch + dm_yscale*column->length;
@@ -1154,7 +1166,10 @@ void R_DrawMaskedColumn ( byte * column_
#endif
dc_source = (byte *)column + 3;
- dc_texturemid = dm_texturemid - (column->topdelta<<FRACBITS);
+ // [crispy] Support for DeePsea tall patches
+ dc_texturemid = dm_texturemid - (top<<FRACBITS);
+ // dc_source = (byte *)column + 3 - top;
+ // dc_texturemid = dm_texturemid - (column->topdelta<<FRACBITS);
// dc_source = (byte *)column + 3 - column->topdelta;
fog_col_length = column->length;