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: 23
Joined: Thu Aug 21, 2014 4:29

Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper » Wed Oct 08, 2014 23:06

This is a collection of minor sprite fixes, optimizations, and added missing 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.

The rotation project isn't complete, yet. There is a todo list in the included readme file for anyone that wants to make the other missing rotation sprites.

If you've been following this thread, you might already know about this project, but I'm just going to post about it here too so more folks can see it.

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

Screenshots
Spoiler:
Last edited by PSTrooper on Fri Nov 07, 2014 5:40, edited 3 times in total.

filipetolhuizen
Posts: 65
Joined: Wed Jun 25, 2014 1:08

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by filipetolhuizen » Thu Oct 09, 2014 15:47

Interesting project. Now this would make a huge difference in Wolfenstein 3D Macintosh version. :)

User avatar
PSTrooper
Posts: 23
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper » Fri Oct 10, 2014 21:39

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: 65
Joined: Wed Jun 25, 2014 1:08

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by filipetolhuizen » Sun Oct 12, 2014 2:24

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: 23
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper » Thu Oct 23, 2014 22:11

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: 23
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper » Tue Jan 20, 2015 6:51

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: 403
Joined: Sun Jan 24, 2010 22:21

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by Blzut3 » Fri Jan 23, 2015 21:33

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: 23
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper » Sat Jan 24, 2015 1:08

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: 403
Joined: Sun Jan 24, 2010 22:21

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by Blzut3 » Sat Jan 24, 2015 1:12

Could have sworn that I saw SSFLH0 in Slade, but I guess not. Never mind then. :P

User avatar
PSTrooper
Posts: 23
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper » Sun Jan 25, 2015 8:53

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: 23
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper » Fri Mar 13, 2015 18:44

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: 403
Joined: Sun Jan 24, 2010 22:21

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by Blzut3 » Fri Mar 13, 2015 18:51

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: 23
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper » Fri Mar 13, 2015 19:03

Sounds good.

Blzut3
Developer
Developer
Posts: 403
Joined: Sun Jan 24, 2010 22:21

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by Blzut3 » Fri Mar 13, 2015 19:36

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: 23
Joined: Thu Aug 21, 2014 4:29

Re: Wolfenstein Sprite Fix and Rotation Project for ECWolf

Post by PSTrooper » Mon Mar 16, 2015 16:46

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”