Duke4.net Forums: Shadow Warrior - "New Episode" - Duke4.net Forums

Jump to content

  • 44 Pages +
  • 1
  • 2
  • 3
  • 4
  • 5
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

Shadow Warrior - "New Episode"

#61

I don't have a new binary update for this new change, but I discovered a bad merge and have fixed the issue. The issue caused the NewGame bool not to be reset when loading a game. This would cause(among other things) the players weapons to be reset when the player transitioned to a new level. I have fixed the issue and committed the fix to github. It will be in for the next patch.
0

User is offline   Kyanos 

#62

A row of undrawn pixels at various resolutions. It's good at 640X480
Posted Image
1

User is offline   Forge 

  • Speaker of the Outhouse

#63

The guardian fireballs won't cross (submersible) water, such as the river at the beginning of e2l1
0

#64

View PostLunick, on 23 May 2017 - 03:47 PM, said:

He doesn't want to download Steam though, I think the free version on GOG should also have the CD music in OGG or at least the disc file https://www.gog.com/...arrior_complete


IIRC the GOG version has the soundtrack in FLAC, but the rip was badly done so a few tracks have noise in them.
1

User is offline   Hendricks266 

  • Weaponized Autism

  #65

I bought multiple copies of Shadow Warrior and ripped the audio tracks using Exact Audio Copy with 1337 hax0r settings. The dumps ended up identical. Maybe my rip could be added as a free soundtrack DLC on Steam.
2

#66

Status Update: I believe I have traced the root of the audio starvation problem(E1L3 various audio queues including player voices do not fire) and the cause of the out of sprite issue to

int DoCoolgDrip(short SpriteNum)
int InitCoolgDrip(short SpriteNum)


Something in side those functions is causing the problem(I think it also might be with the bees as well), I'm investigating the issue.

This post has been edited by icecoldduke: 24 May 2017 - 06:06 PM

0

User is offline   Forge 

  • Speaker of the Outhouse

#67

That would make sense, at least from a layman's perspective, since the bees can be heard in the room prior to the usable machine-gun & that's where the problems related to the issue start.

This post has been edited by Forge: 24 May 2017 - 06:53 PM

0

User is offline   Robman 

  • Asswhipe [sic]

#68

View PostDrek, on 24 May 2017 - 03:26 PM, said:

Posted Image

Does everybody like the numbers used for the health and armor?
I'm not a fan personally, wished it was normal in Redux also.

This post has been edited by Robman: 25 May 2017 - 10:55 AM

0

#69

View PostRobman, on 24 May 2017 - 07:13 PM, said:

Does everybody like the text/font used for the health and armor?
I'm not a fan personally, wished it was normal in Redux also.

I personally really like the Redux UI assets. Not only are they are higher res, but they also solve the widescreen issue. I can respect however that this is very subjective. When I redue the panel UI code, I plan on supporting the legacy UI. This however is a C- task for me right now.

This post has been edited by icecoldduke: 25 May 2017 - 06:45 AM

0

User is offline   Hendricks266 

  • Weaponized Autism

  #70

View Posticecoldduke, on 25 May 2017 - 06:44 AM, said:

This however is a C- task for me right now.

Could you explain what you mean? It sounds like this is games industry terminology that I can't guess the meaning of.
1

User is offline   Robman 

  • Asswhipe [sic]

#71

I would assume it means it's not important.
I think everybody would agree that it should be kept as faithful as possible to the original game however.
0

#72

View PostHendricks266, on 25 May 2017 - 11:05 AM, said:

Could you explain what you mean? It sounds like this is games industry terminology that I can't guess the meaning of.

Basically I have a bunch of A and B bugs/tasks on my plate right now. A bugs are things like crashes, such as the out of sprite assertion. B bugs are things like audio starvation, bad lighting errors(such as going under water and the palette is all fucked), C bugs are things like UI bugs or lighting is slightly wrong. I put that bug as a C- bug because the standard UI by default straches in non 4:3 resolutions, and IMO most people will play for now at widescreen resolutions. D and F bugs/tasks are basically wishlist items. So I will get to this but later down the line.
0

User is offline   Tea Monster 

  • Polymancer

#73

Bug triage.
1

User is offline   Robman 

  • Asswhipe [sic]

#74

I'm talking about the Redux numbers that are used for the health and armor.
The numbers and the dashboard are separate.

Could use the numbers from the HRP, or just modify the Redux ones back to looking normal.
They're fugly and not congruent with the originals, no offense to whoever made them.

I modified the Redux ones to look normal at one point but the transparency got lost. I'll see if I can dig them up sometime.

This post has been edited by Robman: 25 May 2017 - 12:43 PM

0

User is offline   Forge 

  • Speaker of the Outhouse

#75

Playing through e2l1 again from the beginning.
got to the part with the usable machinegun & bee.
Was in the process of shooting the bee and the level just restarted like I was starting a brand new game floating down the river in the boat.

This post has been edited by Forge: 25 May 2017 - 04:18 PM

0

#76

View PostForge, on 25 May 2017 - 04:18 PM, said:

Playing through e2l1 again from the beginning.
got to the part with the usable machinegun & bee.
Was in the process of shooting the bee and the level just restarted like I was starting a brand new game floating down the river in the boat.

I have never seen this happen(but good to know that it does). If you could make a video the next time that happens. It sounds like you might have died(due to a glitch maybe?), and you auto restarted. I think the issues were having are because I've been compiling x64. Seeing shit like ushort spritenum = (PointerA - PointerB) scares me. I'm going to look more into these issues tonight and this weekend.
0

User is offline   Forge 

  • Speaker of the Outhouse

#77

that's not something i've done before, recommend a video capture program (preferably free).
0

User is offline   Romulus 

#78

Both nvidia and AMD have their own video capture solutions, shadowplay and ReLive, respectively.

Third party tools like OBS, FRAPS, etc. can also be used to capture ingame footage, but there's a catch: Software like these has a larger performance impact while recording but offers higher quality footage at lower bitrate whereas the software provided by AMD/nvidia requires you to record your footage at a higher bitrate to achieve similar quality but has little to no performance impact. If you have a GTX 600 or newer/HD 7000 or newer graphics card, shadowplay/ReLive is the way to go.

This post has been edited by Romulus: 25 May 2017 - 05:20 PM

0

User is offline   Forge 

  • Speaker of the Outhouse

#79

Okay. Picked up a program, set it up & tested it out - seems to work fine without causing any -additional- framerate issues & the recording quality is satisfactory.
I'll probably start a new game and try to capture some of the things that happen in the next day or so - just keep in mind, I'm not the best keyboard only player. I've been spoiled with the mouse/keyboard combo for years. My right hand isn't so great navigating the keypad.

while i was testing I received that Assertion failed: spnum >= 0 game\src\rooms.cpp, line 68 crash again, but the video simple stopped recording. Nothing really looked out of place and there weren't any strange noises or sounds going on.

This post has been edited by Forge: 25 May 2017 - 07:00 PM

0

User is online   Mark 

#80

Robman, I don't like either the large or small green font. Are they too large and that is why they are getting cut off on the right edge?
0

User is offline   Jimmy 

  • Let's go Brandon!

#81

It's because of texture filtering. Turn off filtering and hi-tile.
0

User is offline   Forge 

  • Speaker of the Outhouse

#82

View Posticecoldduke, on 25 May 2017 - 04:24 PM, said:

It sounds like you might have died(due to a glitch maybe?), and you auto restarted.

^this
sorry - didn't catch it on video, but I know I died in a fight, and the level auto-restarted.

I'm thinking it might be input related - I was shooting a bee the first time, I was also shooting at some enemies the second time.
It's like the game is buffering the last keys pressed and accepting "fire" as "y" or enter

This post has been edited by Forge: 26 May 2017 - 11:18 AM

0

#83

So I have traced the cause of the audio bug to a call to FX_StopSound in DoUpdateSounds3D(line 1826 in sounds.cpp). It looks like dist is coming out at 255(which is max distance) which is stopping the audio. I'm seeing this behaiver when I shoot the shotgun at a wall thats right in front of me. I'm still investigating just letting everyone know where I'm at now. It's weird because this bug doesn't happen all the time, but if the game gets into a fucked up state getting out of it requires the removal of "if (dist >= 255 && p->vp->voc_distance == DIST_NORMAL)". Obviously this is a symptom of a bigger issue but is a really interesting problem.

EDIT:
It seems like FAFcansee has a fail somewhere, which explain the audio issue and the sprite issue.

This post has been edited by icecoldduke: 26 May 2017 - 04:42 PM

0

User is offline   Romulus 

#84

Made an interesting discovery.

First and foremost, the weapon sprites are perfectly proportioned.

If I start a game without maxing out the screen size slider, I get proper WideScreen.

If I go to the options and max out the screen size slider, and start a new game, then I get stretched WideScreen.

I have made a comparison.

The image on the top is after I started a new game, and then made changes to the screen size.

The one in the middle is from SWP.

The one on the bottom is starting a game after maxing out the screen size from options first.

Posted Image

Btw whenever proper Widescreen asset is implemented, the two axes on the wall disappears. But they display if the screen is stretching.

Oh yeah, mouse functionality is totally broken, but it's already been reported.

This post has been edited by Romulus: 26 May 2017 - 06:28 PM

1

#85

Question for you guys,

I have a bug were the player falls through the reflective floor in E2L1, and according to the tag reference guide:

Hitag 136: CEILING_FLOOR_PIC_OVERRIDE
TAG2 = Picnum (from the "V" menu)
TAG3 =
0: Pic override on the ceiling
1: Pic override on the floor
TAG7 = Draw type
0 = normal
1 = masked
2 = translucent
3 = very translucent
BOOL1 = 1: Block hitscans
This is primarily used to give a floor or ceiling texture to the floor mirror in room-over-room areas. This is used in Shadow Warrior to create the translucent water, the reflective floors, and the masked grating in $VOLCANO.MAP. A sloped floor cannot have a masked or translucent texture. Use with FLOOR_Z_ADJUST (hitag 98) to keep the player from falling through into the lower area. Actors can stand on it too, but will usually fall through when they are killed.
EXAMPLES: AB and AD in EXAMPLE.MAP
SEE ALSO: FLOOR_Z_ADJUST (hitag 98)


The sector that is reflective has a CEILING_FLOOR_PIC_OVERRIDE but its BOOL1 is set to 0(if it was set to 1 the FLOOR_STAT_FAF_BLOCK_HITSCAN stat would be set and this wouldn't be an issue) . From the way I'm reading this guide, FLOOR_Z_ADJUST is also supposed to prevent the player from falling through as well.

In the code

 case CEILING_Z_ADJUST:
                {
                    //SET(sector[sp->sectnum].ceilingstat, CEILING_STAT_FAF_BLOCK_HITSCAN);
                    SET(sector[sp->sectnum].extra, SECTFX_Z_ADJUST);
                    change_sprite_stat(SpriteNum, STAT_ST1);
                    break;
                }

                case FLOOR_Z_ADJUST:
                {
                    //SET(sector[sp->sectnum].floorstat, FLOOR_STAT_FAF_BLOCK_HITSCAN);
                    SET(sector[sp->sectnum].extra, SECTFX_Z_ADJUST);
                    change_sprite_stat(SpriteNum, STAT_ST1);
                    break;
                }


Changing the above to

 case CEILING_Z_ADJUST:
                {
                    SET(sector[sp->sectnum].ceilingstat, CEILING_STAT_FAF_BLOCK_HITSCAN);
                    SET(sector[sp->sectnum].extra, SECTFX_Z_ADJUST);
                    change_sprite_stat(SpriteNum, STAT_ST1);
                    break;
                }

                case FLOOR_Z_ADJUST:
                {
                    SET(sector[sp->sectnum].floorstat, FLOOR_STAT_FAF_BLOCK_HITSCAN);
                    SET(sector[sp->sectnum].extra, SECTFX_Z_ADJUST);
                    change_sprite_stat(SpriteNum, STAT_ST1);
                    break;
                }


Solves the problem but this would mean the player falling through the reflective floor would have happened in the original code drop(which obviously isn't the case). So from what I'm reading the FLOOR_Z_ADJUST should be saving the player from falling through the floor and its not. Was the original intent of the logic that the SECTFX_Z_ADJUST tag, by itself, should be saving the player from falling through the world? If so I'm failing to understand how that would prevent the logic inside of FAFgetzrange from moving the player to the reflection sector below the floor.
0

User is offline   Forge 

  • Speaker of the Outhouse

#86

The player also can't stay surfaced in transparent water. If the player stops swimming / moving, they'll sink to right below the surface.
0

User is offline   Master O 

#87

View Posticecoldduke, on 22 May 2017 - 06:23 PM, said:

Hey guys can we focus on this topic. The only insults I would like to see are the ones directed at me :P.



Your mother was a hamster and your father smelled of elderberries! :P

Yo' mama so fat that when she sat around the house, she sat around the house! ;)

Sum Ting Wong?

Sum Yung Gai?

You want no want million dolla?

You want no want flied lice?

You so ronery? Sadly arrone?

This post has been edited by Master O: 27 May 2017 - 12:31 PM

0

#88

Hendricks I know you don't want #ifdef GAME_SW in main but in Polymer I had to make a code change that you would have to take. The mirror code in Polymer is hardcoded to use mirror tile num 560, I changed that block of code to the following(and now Mirrors render in Polymer).

// jmarshall - Shadow Warrior mirror support
#ifndef GAME_SW
                    wall[sec->wallptr + i].overpicnum == 560 &&
#else
		    wall[sec->wallptr + i].picnum >= 6000 && wall[sec->wallptr + i].picnum <= 6008 && // In the editor the user uses tile 340, but in jsector.cpp it gets overwritten to MIRRORLABEL to MAXMIRRORS
#endif
// jmarshall end

Posted Image

This post has been edited by icecoldduke: 27 May 2017 - 04:36 PM

2

#89

I also just hooked up Polymer lighting, when the new binaries are up the ST1 sprite attirbutes are as follows:

ST1:
HiTag 597
TAG13=ZOffset
TAG6=LightRange
TAG7=Red Color
TAG8=Green Color
TAG9=Blue Color
TAG10=Priority

Posted Image
3

User is offline   Hendricks266 

  • Weaponized Autism

  #90

View Posticecoldduke, on 27 May 2017 - 04:31 PM, said:

Hendricks I know you don't want #ifdef GAME_SW in main but in Polymer I had to make a code change that you would have to take. The mirror code in Polymer is hardcoded to use mirror tile num 560, I changed that block of code to the following(and now Mirrors render in Polymer).

// jmarshall - Shadow Warrior mirror support
#ifndef GAME_SW
                    wall[sec->wallptr + i].overpicnum == 560 &&
#else
		    wall[sec->wallptr + i].picnum >= 6000 && wall[sec->wallptr + i].picnum <= 6008 && // In the editor the user uses tile 340, but in jsector.cpp it gets overwritten to MIRRORLABEL to MAXMIRRORS
#endif
// jmarshall end


The current code is basically an #ifdef GAME_DUKE3D and needs to be replaced with something the game code can configure. Thanks for pointing this out.
0

Share this topic:


  • 44 Pages +
  • 1
  • 2
  • 3
  • 4
  • 5
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic


All copyrights and trademarks not owned by Voidpoint, LLC are the sole property of their respective owners. Play Ion Fury! ;) © Voidpoint, LLC

Enter your sign in name and password


Sign in options