(NEW 1.2 EDITION 8/6/2020) Wolfenstein Sprite Fix and Rotation Project for ECWolf

For released projects. Completed or in progress as long as something is playable.
User avatar
PSTrooper
Posts: 25
Joined: Thu Aug 21, 2014 4:29

(NEW 1.2 EDITION 8/6/2020) Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper »

This is a collection of minor sprite fixes, optimizations, and added missing sprite rotations for Wolfenstein 3d, Spear of Destiny, and both of the Mission Packs, all combined into a compact pk3 file. Also included is a version that removes all the shadows that were pre-baked into the sprites, for those who want to use the sprites outside of ECWolf as a resource.

All that's left to do are the Spear of Destiny boss sprite rotations.

If anyone wants to touch up the custom sprites that are already done, please message me. Those can always be improved upon.
I'd do it myself, but I'm too busy nowadays.

1.2:
Added all attack and pain sprite rotations for every non boss enemy
Added fix for the BJ intermission graphic error in Wolf 3D
BJ has sprite rotations for walking and jumping animations
Fake Hitler has fully animated sprite rotations with shadows
Dog has shadows under the custom rotations now

VIDEO COMING SOON!

I want to thank everyone who helped out and supported this project over the years!

http://www.mediafire.com/download/1mdnh ... ECWolf.zip

Screenshots
Spoiler:
Last edited by PSTrooper on Thu Aug 06, 2020 9:00, edited 5 times in total.
filipetolhuizen
Posts: 76
Joined: Wed Jun 25, 2014 1:08

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by filipetolhuizen »

Interesting project. Now this would make a huge difference in Wolfenstein 3D Macintosh version. :)
User avatar
PSTrooper
Posts: 25
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper »

When it gets supported, I will work on adding support for it. I just haven't seen anybody make rotations for Mac Wolf sprites, and I can't make any because I'm not talented enough.
filipetolhuizen
Posts: 76
Joined: Wed Jun 25, 2014 1:08

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by filipetolhuizen »

That must be damn hard. Even rotations for the 64x64 sprites aren't easy, imagine 128x128. Even the original team might've given up on that. :)
User avatar
PSTrooper
Posts: 25
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper »

Kind of a minor update. I've made "no shadows" contain only the sprites that had their shadows removed to avoid redundancy, and I added shadows to the custom Fake Hitler rotations. (no shadows still has the shadowless version). As soon as I get rotations for the Lost Officer and all the non-boss pain states made, then I'll bump the version up to 1.2.

I'm going to get some gifs made to show off all the missing rotations in action when I get my internet back on. I've also begun making rotations for Fake Hitler's B and C angles (D is just B duplicated), so it looks animated instead of static like what we have now.

Image

One down, eleven to go.
User avatar
PSTrooper
Posts: 25
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper »

Pain rotations for all the non-boss enemies are done and added to the project. The brown guard and Lost Mission SS were done by ArmanAhmadi, and the rest by me. I'd like to know what everyone thinks of these and if anything could be done to make them better. I'm trying to make them look as good and close to the source as possible (the source being the original front sprites). Also, Dog and Doberman pain rotations are completely useless, since they die after one hit, but they exist regardless if anyone wants to use them.
I decided to try and finish all the non boss stuff 100% for version 1.2's release. Right now I'm working on doing my own version of BJ rotations, since I wasn't satisfied with the custom ones I've found floating around.
Image
Blzut3
Developer
Developer
Posts: 491
Joined: Sun Jan 24, 2010 22:21

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by Blzut3 »

The sprites look good, however I must ruin your fun. You see, Wolf3D has two pain states, so you also need rotations for GARDJ0, SSWVI0, MTNTK0 (which might be the same sprite as MTNTJ0), and OFFIJ0. The difference between the two pain states is just if the resulting health after damage is even or odd. These states are not part of the death animation even though they look like they could be. ;) Easiest way to observe the behavior is to just stab with the knife.

I assume the link at the top of this thread is up to date? The lost episode SS's pain rotations seem to be missing in the pk3.
User avatar
PSTrooper
Posts: 25
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper »

Yeah, I started to notice that when testing them out. I'll start working on them this weekend. Good news is MTNTJ0 & MTNTK0 are exactly the same, so I'll just duplicate the rotations for that.
About the link, yes, I keep that link updated with every set of sprites I get done. I just checked, lost episode SS pain rotations are there. (SSFLH1-8) Both pain sprites are similar in that case, so I guess it could be a bit confusing, but at least that makes it easier on me, since all I got to do is add blood to them.

edit, now that you mention it, I notice Lost SS' 8th pain frame has his strap around his shoulder mirrored. I'll need to fix that first.
Last edited by PSTrooper on Sat Jan 24, 2015 1:20, edited 1 time in total.
Blzut3
Developer
Developer
Posts: 491
Joined: Sun Jan 24, 2010 22:21

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by Blzut3 »

Could have sworn that I saw SSFLH0 in Slade, but I guess not. Never mind then. :P
User avatar
PSTrooper
Posts: 25
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper »

Alright. I've updated the Lost SS to fix that shoulder strap error on sprite 8 and a few nitpicks with the other sprites. While I was at it, I also did the second pain rotation. All it is, is just a bloodied version of the first one, so I just added blood to them.

Image

edit: Bat's 2nd pain rotation is done.
Image

edit2: Green Guard's is done.
Image

edit3: ArmanAhmadi sent me these pain rotations for the SS and he also updated frames 2 and 7 on my SS pain rotations to look like he's holding the gun grip and not the clip, like he was before.
Image
User avatar
PSTrooper
Posts: 25
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper »

I've finally been able to test out the mac version of my Sprite Fixing Project. After testing it, it seems the sprites appear bigger than they're supposed to when the mod is used. What would be the best way to fix this?
Spoiler:
Blzut3
Developer
Developer
Posts: 491
Joined: Sun Jan 24, 2010 22:21

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by Blzut3 »

Heh. I think the hires/ directory will work just fine since you're likely not changing the dimensions of the sprites. Otherwise a little bit of grind work is needed to process every sprite through TEXTURES. I could write and run a script to generate said TEXTURES definitions quickly.
User avatar
PSTrooper
Posts: 25
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper »

Sounds good.
Blzut3
Developer
Developer
Posts: 491
Joined: Sun Jan 24, 2010 22:21

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by Blzut3 »

Here's the bash script:

Code: Select all

#!/bin/bash
for i in `ls *.png 640/*.png`
do
	dname=`dirname $i`
	fname=`basename $i .png`
	info=`file $i`
	width=`echo "$info" | sed 's/.*image data, \([0-9]*\).*/\1/'`
	height=`echo "$info" | sed 's/.*image data, [0-9]* x \([0-9]*\).*/\1/'`
	if [ -f $dname/$fname.txt ]
	then
		xofs=`sed 's/.*LeftOffset:\([0-9\-]*\).*/\1/;tx;d;:x' $dname/$fname.txt`
		yofs=`sed 's/.*TopOffset:\([0-9\-]*\).*/\1/;tx;d;:x' $dname/$fname.txt`
		echo "sprite \"$fname\", $width, $height { offset $xofs, $yofs xscale 2 yscale 2 patch \"$fname\", 0, 0 }"
	else
		if [[ $fname == WALL* ]]
		then
			echo "flat \"$fname\", $width, $height { xscale 2 yscale 2 patch \"$fname\", 0, 0 }" 
		fi
	fi
done
Names may need to be updated:
[spoiler]

Code: Select all

sprite "BJ00", 131, 142 { offset 0, 0 xscale 2 yscale 2 patch "BJ00", 0, 0 }
sprite "BJ01", 131, 142 { offset 0, 0 xscale 2 yscale 2 patch "BJ01", 0, 0 }
sprite "BJ02", 131, 142 { offset 0, 0 xscale 2 yscale 2 patch "BJ02", 0, 0 }
sprite "HUD00", 48, 64 { offset 0, 0 xscale 2 yscale 2 patch "HUD00", 0, 0 }
sprite "HUD01", 48, 64 { offset 0, 0 xscale 2 yscale 2 patch "HUD01", 0, 0 }
sprite "HUD02", 48, 64 { offset 0, 0 xscale 2 yscale 2 patch "HUD02", 0, 0 }
sprite "HUD03", 48, 64 { offset 0, 0 xscale 2 yscale 2 patch "HUD03", 0, 0 }
sprite "HUD04", 48, 64 { offset 0, 0 xscale 2 yscale 2 patch "HUD04", 0, 0 }
sprite "HUD05", 48, 64 { offset 0, 0 xscale 2 yscale 2 patch "HUD05", 0, 0 }
sprite "HUD06", 48, 64 { offset 0, 0 xscale 2 yscale 2 patch "HUD06", 0, 0 }
sprite "HUD07", 48, 64 { offset 0, 0 xscale 2 yscale 2 patch "HUD07", 0, 0 }
sprite "HUD08", 48, 64 { offset 0, 0 xscale 2 yscale 2 patch "HUD08", 0, 0 }
sprite "HUD09", 48, 64 { offset 0, 0 xscale 2 yscale 2 patch "HUD09", 0, 0 }
sprite "HUD10", 12, 22 { offset 0, 0 xscale 2 yscale 2 patch "HUD10", 0, 0 }
sprite "HUD11", 12, 22 { offset 0, 0 xscale 2 yscale 2 patch "HUD11", 0, 0 }
sprite "HUD12", 40, 36 { offset -62, -92 xscale 2 yscale 2 patch "HUD12", 0, 0 }
sprite "HUD13", 62, 56 { offset -54, -72 xscale 2 yscale 2 patch "HUD13", 0, 0 }
sprite "HUD14", 67, 60 { offset -55, -68 xscale 2 yscale 2 patch "HUD14", 0, 0 }
sprite "HUD15", 79, 77 { offset -46, -51 xscale 2 yscale 2 patch "HUD15", 0, 0 }
sprite "HUD16", 60, 69 { offset -28, -59 xscale 2 yscale 2 patch "HUD16", 0, 0 }
sprite "HUD17", 88, 96 { offset -15, -32 xscale 2 yscale 2 patch "HUD17", 0, 0 }
sprite "HUD18", 88, 115 { offset -14, -13 xscale 2 yscale 2 patch "HUD18", 0, 0 }
sprite "HUD19", 86, 128 { offset -14, 0 xscale 2 yscale 2 patch "HUD19", 0, 0 }
sprite "HUD20", 50, 56 { offset -39, -72 xscale 2 yscale 2 patch "HUD20", 0, 0 }
sprite "HUD21", 60, 72 { offset -34, -56 xscale 2 yscale 2 patch "HUD21", 0, 0 }
sprite "HUD22", 60, 97 { offset -34, -31 xscale 2 yscale 2 patch "HUD22", 0, 0 }
sprite "HUD23", 60, 70 { offset -34, -58 xscale 2 yscale 2 patch "HUD23", 0, 0 }
sprite "HUD24", 82, 50 { offset -24, -78 xscale 2 yscale 2 patch "HUD24", 0, 0 }
sprite "HUD25", 94, 62 { offset -18, -66 xscale 2 yscale 2 patch "HUD25", 0, 0 }
sprite "HUD26", 100, 93 { offset -14, -35 xscale 2 yscale 2 patch "HUD26", 0, 0 }
sprite "HUD27", 98, 101 { offset -16, -27 xscale 2 yscale 2 patch "HUD27", 0, 0 }
sprite "HUD28", 16, 25 { offset -58, -103 xscale 2 yscale 2 patch "HUD28", 0, 0 }
sprite "HUD29", 42, 33 { offset -44, -95 xscale 2 yscale 2 patch "HUD29", 0, 0 }
sprite "HUD30", 53, 55 { offset -39, -73 xscale 2 yscale 2 patch "HUD30", 0, 0 }
sprite "HUD31", 58, 69 { offset -37, -59 xscale 2 yscale 2 patch "HUD31", 0, 0 }
sprite "HUD32", 51, 34 { offset -40, -94 xscale 2 yscale 2 patch "HUD32", 0, 0 }
sprite "HUD33", 45, 39 { offset -43, -89 xscale 2 yscale 2 patch "HUD33", 0, 0 }
sprite "HUD34", 58, 71 { offset -37, -57 xscale 2 yscale 2 patch "HUD34", 0, 0 }
sprite "HUD35", 49, 44 { offset -39, -84 xscale 2 yscale 2 patch "HUD35", 0, 0 }
sprite "HUD36", 16, 32 { offset 0, 0 xscale 2 yscale 2 patch "HUD36", 0, 0 }
sprite "HUD37", 16, 32 { offset 0, 0 xscale 2 yscale 2 patch "HUD37", 0, 0 }
sprite "HUD38", 16, 32 { offset 0, 0 xscale 2 yscale 2 patch "HUD38", 0, 0 }
sprite "HUD39", 16, 32 { offset 0, 0 xscale 2 yscale 2 patch "HUD39", 0, 0 }
sprite "HUD40", 16, 32 { offset 0, 0 xscale 2 yscale 2 patch "HUD40", 0, 0 }
sprite "HUD41", 16, 32 { offset 0, 0 xscale 2 yscale 2 patch "HUD41", 0, 0 }
sprite "HUD42", 16, 32 { offset 0, 0 xscale 2 yscale 2 patch "HUD42", 0, 0 }
sprite "HUD43", 16, 32 { offset 0, 0 xscale 2 yscale 2 patch "HUD43", 0, 0 }
sprite "HUD44", 16, 32 { offset 0, 0 xscale 2 yscale 2 patch "HUD44", 0, 0 }
sprite "HUD45", 16, 32 { offset 0, 0 xscale 2 yscale 2 patch "HUD45", 0, 0 }
sprite "HUD46", 640, 80 { offset 0, 0 xscale 2 yscale 2 patch "HUD46", 0, 0 }
sprite "ALPOA0", 32, 17 { offset 16, 19 xscale 2 yscale 2 patch "ALPOA0", 0, 0 }
sprite "AMMOA0", 74, 36 { offset 37, 42 xscale 2 yscale 2 patch "AMMOA0", 0, 0 }
sprite "ARMRA0", 80, 126 { offset 40, 126 xscale 2 yscale 2 patch "ARMRA0", 0, 0 }
sprite "BARLA0", 92, 67 { offset 46, 67 xscale 2 yscale 2 patch "BARLA0", 0, 0 }
sprite "BASKA0", 47, 30 { offset 23, 32 xscale 2 yscale 2 patch "BASKA0", 0, 0 }
sprite "BLKYA0", 93, 126 { offset 46, 127 xscale 2 yscale 2 patch "BLKYA0", 0, 0 }
sprite "BON1A0", 113, 30 { offset 56, 31 xscale 2 yscale 2 patch "BON1A0", 0, 0 }
sprite "BOOMA0", 56, 55 { offset 28, 76 xscale 2 yscale 2 patch "BOOMA0", 0, 0 }
sprite "BOOMB0", 79, 68 { offset 39, 86 xscale 2 yscale 2 patch "BOOMB0", 0, 0 }
sprite "BPAKA0", 57, 50 { offset 28, 54 xscale 2 yscale 2 patch "BPAKA0", 0, 0 }
sprite "BPNTA0", 75, 97 { offset 37, 97 xscale 2 yscale 2 patch "BPNTA0", 0, 0 }
sprite "BR00A0", 31, 28 { offset 15, 62 xscale 2 yscale 2 patch "BR00A0", 0, 0 }
sprite "BR01A0", 82, 81 { offset 41, 88 xscale 2 yscale 2 patch "BR01A0", 0, 0 }
sprite "BROKA0", 68, 42 { offset 34, 42 xscale 2 yscale 2 patch "BROKA0", 0, 0 }
sprite "CAG1A0", 47, 92 { offset 23, 128 xscale 2 yscale 2 patch "CAG1A0", 0, 0 }
sprite "CGUNA0", 79, 39 { offset 39, 39 xscale 2 yscale 2 patch "CGUNA0", 0, 0 }
sprite "CHALA0", 42, 30 { offset 21, 32 xscale 2 yscale 2 patch "CHALA0", 0, 0 }
sprite "CHANA0", 41, 32 { offset 20, 128 xscale 2 yscale 2 patch "CHANA0", 0, 0 }
sprite "CLIPA0", 24, 18 { offset 12, 20 xscale 2 yscale 2 patch "CLIPA0", 0, 0 }
sprite "COL2A0", 90, 128 { offset 45, 128 xscale 2 yscale 2 patch "COL2A0", 0, 0 }
sprite "CROSA0", 38, 38 { offset 19, 38 xscale 2 yscale 2 patch "CROSA0", 0, 0 }
sprite "CRWNA0", 44, 36 { offset 22, 36 xscale 2 yscale 2 patch "CRWNA0", 0, 0 }
sprite "DKNTA0", 124, 126 { offset 62, 126 xscale 2 yscale 2 patch "DKNTA0", 0, 0 }
sprite "DKNTB0", 124, 126 { offset 62, 128 xscale 2 yscale 2 patch "DKNTB0", 0, 0 }
sprite "DKNTC0", 124, 127 { offset 62, 127 xscale 2 yscale 2 patch "DKNTC0", 0, 0 }
sprite "DKNTD0", 124, 127 { offset 62, 128 xscale 2 yscale 2 patch "DKNTD0", 0, 0 }
sprite "DKNTE0", 124, 126 { offset 62, 126 xscale 2 yscale 2 patch "DKNTE0", 0, 0 }
sprite "DKNTF0", 126, 126 { offset 63, 126 xscale 2 yscale 2 patch "DKNTF0", 0, 0 }
sprite "DKNTG0", 128, 126 { offset 64, 126 xscale 2 yscale 2 patch "DKNTG0", 0, 0 }
sprite "DKNTH0", 127, 126 { offset 63, 126 xscale 2 yscale 2 patch "DKNTH0", 0, 0 }
sprite "DKNTI0", 124, 118 { offset 62, 122 xscale 2 yscale 2 patch "DKNTI0", 0, 0 }
sprite "DKNTJ0", 124, 95 { offset 62, 96 xscale 2 yscale 2 patch "DKNTJ0", 0, 0 }
sprite "DKNTK0", 125, 45 { offset 62, 45 xscale 2 yscale 2 patch "DKNTK0", 0, 0 }
sprite "DOGYA0", 28, 62 { offset 14, 66 xscale 2 yscale 2 patch "DOGYA0", 0, 0 }
sprite "DOGYB0", 28, 58 { offset 14, 66 xscale 2 yscale 2 patch "DOGYB0", 0, 0 }
sprite "DOGYC0", 28, 60 { offset 14, 60 xscale 2 yscale 2 patch "DOGYC0", 0, 0 }
sprite "DOGYD0", 32, 56 { offset 16, 62 xscale 2 yscale 2 patch "DOGYD0", 0, 0 }
sprite "DOGYE0", 38, 78 { offset 19, 82 xscale 2 yscale 2 patch "DOGYE0", 0, 0 }
sprite "DOGYF0", 42, 85 { offset 21, 89 xscale 2 yscale 2 patch "DOGYF0", 0, 0 }
sprite "DOGYG0", 50, 84 { offset 25, 88 xscale 2 yscale 2 patch "DOGYG0", 0, 0 }
sprite "DOGYH0", 95, 70 { offset 47, 78 xscale 2 yscale 2 patch "DOGYH0", 0, 0 }
sprite "DOGYI0", 112, 67 { offset 56, 69 xscale 2 yscale 2 patch "DOGYI0", 0, 0 }
sprite "DOGYJ0", 109, 26 { offset 54, 26 xscale 2 yscale 2 patch "DOGYJ0", 0, 0 }
sprite "DRUMA0", 81, 64 { offset 40, 64 xscale 2 yscale 2 patch "DRUMA0", 0, 0 }
sprite "FLAGA0", 76, 121 { offset 38, 122 xscale 2 yscale 2 patch "FLAGA0", 0, 0 }
sprite "FLMPA0", 73, 80 { offset 36, 80 xscale 2 yscale 2 patch "FLMPA0", 0, 0 }
sprite "FNKYA0", 94, 127 { offset 47, 127 xscale 2 yscale 2 patch "FNKYA0", 0, 0 }
sprite "FOODA0", 62, 18 { offset 31, 18 xscale 2 yscale 2 patch "FOODA0", 0, 0 }
sprite "FTHRA0", 98, 36 { offset 49, 36 xscale 2 yscale 2 patch "FTHRA0", 0, 0 }
sprite "GARDA0", 47, 96 { offset 23, 96 xscale 2 yscale 2 patch "GARDA0", 0, 0 }
sprite "GARDB0", 38, 93 { offset 19, 93 xscale 2 yscale 2 patch "GARDB0", 0, 0 }
sprite "GARDC0", 47, 96 { offset 23, 96 xscale 2 yscale 2 patch "GARDC0", 0, 0 }
sprite "GARDD0", 38, 93 { offset 19, 93 xscale 2 yscale 2 patch "GARDD0", 0, 0 }
sprite "GARDE0", 52, 97 { offset 26, 97 xscale 2 yscale 2 patch "GARDE0", 0, 0 }
sprite "GARDF0", 48, 92 { offset 24, 92 xscale 2 yscale 2 patch "GARDF0", 0, 0 }
sprite "GARDG0", 48, 92 { offset 24, 92 xscale 2 yscale 2 patch "GARDG0", 0, 0 }
sprite "GARDH0", 52, 92 { offset 26, 92 xscale 2 yscale 2 patch "GARDH0", 0, 0 }
sprite "GARDI0", 64, 71 { offset 32, 89 xscale 2 yscale 2 patch "GARDI0", 0, 0 }
sprite "GARDJ0", 70, 50 { offset 35, 60 xscale 2 yscale 2 patch "GARDJ0", 0, 0 }
sprite "GARDK0", 84, 29 { offset 42, 29 xscale 2 yscale 2 patch "GARDK0", 0, 0 }
sprite "GKEYA0", 54, 20 { offset 27, 22 xscale 2 yscale 2 patch "GKEYA0", 0, 0 }
sprite "GLMPA0", 40, 20 { offset 20, 128 xscale 2 yscale 2 patch "GLMPA0", 0, 0 }
sprite "GMOVA0", 122, 64 { offset 61, 101 xscale 2 yscale 2 patch "GMOVA0", 0, 0 }
sprite "HANSA0", 105, 124 { offset 52, 124 xscale 2 yscale 2 patch "HANSA0", 0, 0 }
sprite "HANSB0", 122, 125 { offset 61, 127 xscale 2 yscale 2 patch "HANSB0", 0, 0 }
sprite "HANSC0", 105, 124 { offset 52, 124 xscale 2 yscale 2 patch "HANSC0", 0, 0 }
sprite "HANSD0", 122, 125 { offset 61, 127 xscale 2 yscale 2 patch "HANSD0", 0, 0 }
sprite "HANSE0", 116, 123 { offset 58, 123 xscale 2 yscale 2 patch "HANSE0", 0, 0 }
sprite "HANSF0", 118, 122 { offset 59, 122 xscale 2 yscale 2 patch "HANSF0", 0, 0 }
sprite "HANSG0", 116, 123 { offset 58, 123 xscale 2 yscale 2 patch "HANSG0", 0, 0 }
sprite "HANSH0", 108, 118 { offset 54, 122 xscale 2 yscale 2 patch "HANSH0", 0, 0 }
sprite "HANSI0", 115, 84 { offset 57, 85 xscale 2 yscale 2 patch "HANSI0", 0, 0 }
sprite "HANSJ0", 113, 38 { offset 56, 38 xscale 2 yscale 2 patch "HANSJ0", 0, 0 }
sprite "HTLRA0", 92, 106 { offset 46, 106 xscale 2 yscale 2 patch "HTLRA0", 0, 0 }
sprite "HTLRB0", 85, 108 { offset 42, 110 xscale 2 yscale 2 patch "HTLRB0", 0, 0 }
sprite "HTLRC0", 92, 104 { offset 46, 104 xscale 2 yscale 2 patch "HTLRC0", 0, 0 }
sprite "HTLRD0", 85, 108 { offset 42, 110 xscale 2 yscale 2 patch "HTLRD0", 0, 0 }
sprite "HTLRE0", 90, 105 { offset 45, 105 xscale 2 yscale 2 patch "HTLRE0", 0, 0 }
sprite "HTLRF0", 95, 104 { offset 47, 104 xscale 2 yscale 2 patch "HTLRF0", 0, 0 }
sprite "HTLRG0", 100, 105 { offset 50, 105 xscale 2 yscale 2 patch "HTLRG0", 0, 0 }
sprite "HTLRH0", 89, 110 { offset 44, 112 xscale 2 yscale 2 patch "HTLRH0", 0, 0 }
sprite "HTLRI0", 114, 89 { offset 57, 89 xscale 2 yscale 2 patch "HTLRI0", 0, 0 }
sprite "HTLRJ0", 119, 45 { offset 59, 45 xscale 2 yscale 2 patch "HTLRJ0", 0, 0 }
sprite "HYPOA0", 17, 25 { offset 8, 76 xscale 2 yscale 2 patch "HYPOA0", 0, 0 }
sprite "INKYA0", 92, 126 { offset 46, 127 xscale 2 yscale 2 patch "INKYA0", 0, 0 }
sprite "JEWLA0", 56, 26 { offset 28, 26 xscale 2 yscale 2 patch "JEWLA0", 0, 0 }
sprite "KNKYA0", 92, 126 { offset 46, 127 xscale 2 yscale 2 patch "KNKYA0", 0, 0 }
sprite "LAUNA0", 106, 39 { offset 53, 39 xscale 2 yscale 2 patch "LAUNA0", 0, 0 }
sprite "MECHA0", 122, 124 { offset 61, 124 xscale 2 yscale 2 patch "MECHA0", 0, 0 }
sprite "MECHB0", 122, 122 { offset 61, 122 xscale 2 yscale 2 patch "MECHB0", 0, 0 }
sprite "MECHC0", 122, 124 { offset 61, 126 xscale 2 yscale 2 patch "MECHC0", 0, 0 }
sprite "MECHD0", 122, 122 { offset 61, 122 xscale 2 yscale 2 patch "MECHD0", 0, 0 }
sprite "MECHE0", 122, 120 { offset 61, 120 xscale 2 yscale 2 patch "MECHE0", 0, 0 }
sprite "MECHF0", 127, 120 { offset 63, 120 xscale 2 yscale 2 patch "MECHF0", 0, 0 }
sprite "MECHG0", 125, 120 { offset 62, 120 xscale 2 yscale 2 patch "MECHG0", 0, 0 }
sprite "MECHH0", 123, 123 { offset 61, 123 xscale 2 yscale 2 patch "MECHH0", 0, 0 }
sprite "MECHI0", 120, 117 { offset 60, 117 xscale 2 yscale 2 patch "MECHI0", 0, 0 }
sprite "MECHJ0", 121, 106 { offset 60, 106 xscale 2 yscale 2 patch "MECHJ0", 0, 0 }
sprite "MECHK0", 121, 30 { offset 60, 30 xscale 2 yscale 2 patch "MECHK0", 0, 0 }
sprite "MEDIA0", 70, 20 { offset 35, 20 xscale 2 yscale 2 patch "MEDIA0", 0, 0 }
sprite "MGUNA0", 88, 34 { offset 44, 34 xscale 2 yscale 2 patch "MGUNA0", 0, 0 }
sprite "MTNTA0", 50, 90 { offset 25, 92 xscale 2 yscale 2 patch "MTNTA0", 0, 0 }
sprite "MTNTB0", 46, 90 { offset 23, 90 xscale 2 yscale 2 patch "MTNTB0", 0, 0 }
sprite "MTNTC0", 50, 90 { offset 25, 92 xscale 2 yscale 2 patch "MTNTC0", 0, 0 }
sprite "MTNTD0", 46, 90 { offset 23, 90 xscale 2 yscale 2 patch "MTNTD0", 0, 0 }
sprite "MTNTE0", 60, 88 { offset 30, 88 xscale 2 yscale 2 patch "MTNTE0", 0, 0 }
sprite "MTNTF0", 52, 118 { offset 26, 118 xscale 2 yscale 2 patch "MTNTF0", 0, 0 }
sprite "MTNTG0", 52, 118 { offset 26, 118 xscale 2 yscale 2 patch "MTNTG0", 0, 0 }
sprite "MTNTH0", 50, 79 { offset 25, 79 xscale 2 yscale 2 patch "MTNTH0", 0, 0 }
sprite "MTNTI0", 92, 67 { offset 46, 69 xscale 2 yscale 2 patch "MTNTI0", 0, 0 }
sprite "MTNTJ0", 89, 54 { offset 44, 58 xscale 2 yscale 2 patch "MTNTJ0", 0, 0 }
sprite "MTNTK0", 90, 24 { offset 45, 26 xscale 2 yscale 2 patch "MTNTK0", 0, 0 }
sprite "OFFIA0", 51, 93 { offset 25, 95 xscale 2 yscale 2 patch "OFFIA0", 0, 0 }
sprite "OFFIB0", 42, 91 { offset 21, 91 xscale 2 yscale 2 patch "OFFIB0", 0, 0 }
sprite "OFFIC0", 51, 93 { offset 25, 95 xscale 2 yscale 2 patch "OFFIC0", 0, 0 }
sprite "OFFID0", 42, 91 { offset 21, 91 xscale 2 yscale 2 patch "OFFID0", 0, 0 }
sprite "OFFIE0", 54, 99 { offset 27, 99 xscale 2 yscale 2 patch "OFFIE0", 0, 0 }
sprite "OFFIF0", 41, 93 { offset 20, 93 xscale 2 yscale 2 patch "OFFIF0", 0, 0 }
sprite "OFFIG0", 41, 91 { offset 20, 91 xscale 2 yscale 2 patch "OFFIG0", 0, 0 }
sprite "OFFIH0", 60, 97 { offset 30, 97 xscale 2 yscale 2 patch "OFFIH0", 0, 0 }
sprite "OFFII0", 62, 83 { offset 31, 91 xscale 2 yscale 2 patch "OFFII0", 0, 0 }
sprite "OFFIJ0", 64, 66 { offset 32, 72 xscale 2 yscale 2 patch "OFFIJ0", 0, 0 }
sprite "OFFIK0", 79, 28 { offset 39, 30 xscale 2 yscale 2 patch "OFFIK0", 0, 0 }
sprite "ONUPA0", 52, 59 { offset 26, 59 xscale 2 yscale 2 patch "ONUPA0", 0, 0 }
sprite "PLNTA0", 83, 107 { offset 41, 107 xscale 2 yscale 2 patch "PLNTA0", 0, 0 }
sprite "ROCKA0", 23, 26 { offset 11, 96 xscale 2 yscale 2 patch "ROCKA0", 0, 0 }
sprite "SHABA0", 89, 117 { offset 44, 117 xscale 2 yscale 2 patch "SHABA0", 0, 0 }
sprite "SHABB0", 94, 119 { offset 47, 121 xscale 2 yscale 2 patch "SHABB0", 0, 0 }
sprite "SHABC0", 84, 117 { offset 42, 117 xscale 2 yscale 2 patch "SHABC0", 0, 0 }
sprite "SHABD0", 94, 119 { offset 47, 121 xscale 2 yscale 2 patch "SHABD0", 0, 0 }
sprite "SHABE0", 73, 117 { offset 36, 117 xscale 2 yscale 2 patch "SHABE0", 0, 0 }
sprite "SHABF0", 83, 114 { offset 41, 114 xscale 2 yscale 2 patch "SHABF0", 0, 0 }
sprite "SHABG0", 88, 120 { offset 44, 120 xscale 2 yscale 2 patch "SHABG0", 0, 0 }
sprite "SHABH0", 83, 73 { offset 41, 77 xscale 2 yscale 2 patch "SHABH0", 0, 0 }
sprite "SHABI0", 99, 33 { offset 49, 37 xscale 2 yscale 2 patch "SHABI0", 0, 0 }
sprite "SKEYA0", 54, 20 { offset 27, 22 xscale 2 yscale 2 patch "SKEYA0", 0, 0 }
sprite "SSWVA0", 56, 106 { offset 28, 110 xscale 2 yscale 2 patch "SSWVA0", 0, 0 }
sprite "SSWVB0", 58, 107 { offset 29, 107 xscale 2 yscale 2 patch "SSWVB0", 0, 0 }
sprite "SSWVC0", 56, 106 { offset 28, 110 xscale 2 yscale 2 patch "SSWVC0", 0, 0 }
sprite "SSWVD0", 50, 105 { offset 25, 105 xscale 2 yscale 2 patch "SSWVD0", 0, 0 }
sprite "SSWVE0", 55, 103 { offset 27, 103 xscale 2 yscale 2 patch "SSWVE0", 0, 0 }
sprite "SSWVF0", 50, 104 { offset 25, 104 xscale 2 yscale 2 patch "SSWVF0", 0, 0 }
sprite "SSWVG0", 51, 102 { offset 25, 102 xscale 2 yscale 2 patch "SSWVG0", 0, 0 }
sprite "SSWVH0", 58, 109 { offset 29, 109 xscale 2 yscale 2 patch "SSWVH0", 0, 0 }
sprite "SSWVI0", 81, 73 { offset 40, 75 xscale 2 yscale 2 patch "SSWVI0", 0, 0 }
sprite "SSWVJ0", 82, 60 { offset 41, 62 xscale 2 yscale 2 patch "SSWVJ0", 0, 0 }
sprite "SSWVK0", 96, 32 { offset 48, 32 xscale 2 yscale 2 patch "SSWVK0", 0, 0 }
sprite "TABLA0", 80, 53 { offset 40, 53 xscale 2 yscale 2 patch "TABLA0", 0, 0 }
sprite "TANKA0", 52, 43 { offset 26, 43 xscale 2 yscale 2 patch "TANKA0", 0, 0 }
sprite "TRNSA0", 122, 124 { offset 61, 124 xscale 2 yscale 2 patch "TRNSA0", 0, 0 }
sprite "TRNSB0", 124, 124 { offset 62, 126 xscale 2 yscale 2 patch "TRNSB0", 0, 0 }
sprite "TRNSC0", 124, 124 { offset 62, 124 xscale 2 yscale 2 patch "TRNSC0", 0, 0 }
sprite "TRNSD0", 124, 124 { offset 62, 126 xscale 2 yscale 2 patch "TRNSD0", 0, 0 }
sprite "TRNSE0", 124, 126 { offset 62, 126 xscale 2 yscale 2 patch "TRNSE0", 0, 0 }
sprite "TRNSF0", 124, 126 { offset 62, 126 xscale 2 yscale 2 patch "TRNSF0", 0, 0 }
sprite "TRNSG0", 124, 122 { offset 62, 122 xscale 2 yscale 2 patch "TRNSG0", 0, 0 }
sprite "TRNSH0", 124, 122 { offset 62, 122 xscale 2 yscale 2 patch "TRNSH0", 0, 0 }
sprite "TRNSI0", 124, 85 { offset 62, 87 xscale 2 yscale 2 patch "TRNSI0", 0, 0 }
sprite "TRNSJ0", 124, 41 { offset 62, 41 xscale 2 yscale 2 patch "TRNSJ0", 0, 0 }
sprite "UBERA0", 99, 126 { offset 49, 126 xscale 2 yscale 2 patch "UBERA0", 0, 0 }
sprite "UBERB0", 113, 124 { offset 56, 126 xscale 2 yscale 2 patch "UBERB0", 0, 0 }
sprite "UBERC0", 98, 126 { offset 49, 126 xscale 2 yscale 2 patch "UBERC0", 0, 0 }
sprite "UBERD0", 113, 125 { offset 56, 127 xscale 2 yscale 2 patch "UBERD0", 0, 0 }
sprite "UBERE0", 110, 128 { offset 55, 128 xscale 2 yscale 2 patch "UBERE0", 0, 0 }
sprite "UBERF0", 122, 121 { offset 61, 121 xscale 2 yscale 2 patch "UBERF0", 0, 0 }
sprite "UBERG0", 118, 128 { offset 59, 128 xscale 2 yscale 2 patch "UBERG0", 0, 0 }
sprite "UBERH0", 120, 120 { offset 60, 120 xscale 2 yscale 2 patch "UBERH0", 0, 0 }
sprite "UBERI0", 115, 123 { offset 57, 127 xscale 2 yscale 2 patch "UBERI0", 0, 0 }
sprite "UBERJ0", 112, 94 { offset 56, 108 xscale 2 yscale 2 patch "UBERJ0", 0, 0 }
sprite "UBERK0", 110, 48 { offset 55, 48 xscale 2 yscale 2 patch "UBERK0", 0, 0 }
sprite "VASEA0", 74, 62 { offset 37, 62 xscale 2 yscale 2 patch "VASEA0", 0, 0 }
flat "WALL012C", 128, 128 { xscale 2 yscale 2 patch "WALL012C", 0, 0 }
flat "WALL012D", 128, 128 { xscale 2 yscale 2 patch "WALL012D", 0, 0 }
flat "WALL012E", 128, 128 { xscale 2 yscale 2 patch "WALL012E", 0, 0 }
flat "WALL012F", 128, 128 { xscale 2 yscale 2 patch "WALL012F", 0, 0 }
flat "WALL0130", 128, 128 { xscale 2 yscale 2 patch "WALL0130", 0, 0 }
flat "WALL0131", 128, 128 { xscale 2 yscale 2 patch "WALL0131", 0, 0 }
flat "WALL0132", 128, 128 { xscale 2 yscale 2 patch "WALL0132", 0, 0 }
flat "WALL0133", 128, 128 { xscale 2 yscale 2 patch "WALL0133", 0, 0 }
flat "WALL0134", 128, 128 { xscale 2 yscale 2 patch "WALL0134", 0, 0 }
flat "WALL0135", 128, 128 { xscale 2 yscale 2 patch "WALL0135", 0, 0 }
flat "WALL0136", 128, 128 { xscale 2 yscale 2 patch "WALL0136", 0, 0 }
flat "WALL0137", 128, 128 { xscale 2 yscale 2 patch "WALL0137", 0, 0 }
flat "WALL0138", 128, 128 { xscale 2 yscale 2 patch "WALL0138", 0, 0 }
flat "WALL0139", 128, 128 { xscale 2 yscale 2 patch "WALL0139", 0, 0 }
flat "WALL013A", 128, 128 { xscale 2 yscale 2 patch "WALL013A", 0, 0 }
flat "WALL013B", 128, 128 { xscale 2 yscale 2 patch "WALL013B", 0, 0 }
flat "WALL013C", 128, 128 { xscale 2 yscale 2 patch "WALL013C", 0, 0 }
flat "WALL013D", 128, 128 { xscale 2 yscale 2 patch "WALL013D", 0, 0 }
flat "WALL013E", 128, 128 { xscale 2 yscale 2 patch "WALL013E", 0, 0 }
flat "WALL013F", 128, 128 { xscale 2 yscale 2 patch "WALL013F", 0, 0 }
flat "WALL0140", 128, 128 { xscale 2 yscale 2 patch "WALL0140", 0, 0 }
flat "WALL0141", 128, 128 { xscale 2 yscale 2 patch "WALL0141", 0, 0 }
flat "WALL0142", 128, 128 { xscale 2 yscale 2 patch "WALL0142", 0, 0 }
flat "WALL0143", 128, 128 { xscale 2 yscale 2 patch "WALL0143", 0, 0 }
flat "WALL0144", 128, 128 { xscale 2 yscale 2 patch "WALL0144", 0, 0 }
flat "WALL0145", 128, 128 { xscale 2 yscale 2 patch "WALL0145", 0, 0 }
flat "WALL0146", 128, 128 { xscale 2 yscale 2 patch "WALL0146", 0, 0 }
flat "WALL0147", 128, 128 { xscale 2 yscale 2 patch "WALL0147", 0, 0 }
flat "WALL0148", 128, 128 { xscale 2 yscale 2 patch "WALL0148", 0, 0 }
flat "WALL0149", 128, 128 { xscale 2 yscale 2 patch "WALL0149", 0, 0 }
flat "WALL014A", 128, 128 { xscale 2 yscale 2 patch "WALL014A", 0, 0 }
flat "WALL014B", 128, 128 { xscale 2 yscale 2 patch "WALL014B", 0, 0 }
flat "WALL014C", 128, 128 { xscale 2 yscale 2 patch "WALL014C", 0, 0 }
flat "WALL014D", 128, 128 { xscale 2 yscale 2 patch "WALL014D", 0, 0 }
flat "WALL014E", 128, 128 { xscale 2 yscale 2 patch "WALL014E", 0, 0 }
flat "WALL014F", 128, 128 { xscale 2 yscale 2 patch "WALL014F", 0, 0 }
sprite "WATRA0", 94, 12 { offset 47, 12 xscale 2 yscale 2 patch "WATRA0", 0, 0 }
sprite "WEL1A0", 108, 50 { offset 54, 50 xscale 2 yscale 2 patch "WEL1A0", 0, 0 }
sprite "YWINA0", 98, 36 { offset 49, 83 xscale 2 yscale 2 patch "YWINA0", 0, 0 }
[/spoiler]
User avatar
PSTrooper
Posts: 25
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper »

Here is the Mac Version of the Sprite Fixing Project. I want to thank Blzut3 for sending me the sprites and helping out with a few other things. A lot of work had to be done to get them in the state they're in now. Mac Wolf's sprite format is just so different from what I'm used to. I was able to find some errors in the sprites, mostly in the firing animation offsets, which I fixed based on how they appear in the pc version. I'm going to get some gifs made to show the fixes off when I have some free time later this week. If anyone spots any missed errors in the sprites, let me know. If you don't have Mac Wolf, it's still a good resource for getting all the Mac version's sprites; all sprites are included cropped for optimization in ECWolf. I know it's hard enough to get the sprites as it is (well for me at least). No rotations exist for Mac Wolf's sprites. Yet. Hopefully, we'll get some done now.

Download
Post Reply

Return to “Releases”