Jump to content

how to make custom weapon sprites in vanila doom?


Recommended Posts

i really, really, REALLY need a clear tutorial on how to mod sprites for weapons in vanilla doom... 

i know the texture and sprite basic EDITING for slade but i dont Really know sprite MODDING

so someone please help on how to make custom weapon sprites

 

Share this post


Link to post

You can't do this out of the box with just a wad file. You need to produce a complete IWAD in some form. In the old days you'd ship a batch and a way to copy the idgame iwad file and add your changes to this copy. You can't distribute (legally) id's sprites and other assets.

 

You could probably fill it with Freedoom content and distribute a complete iwad. That also has its obvious drawbacks, you are supplying 100% new sprite content, not just a few sprite mods.

Share this post


Link to post
On 12/14/2023 at 1:44 PM, zokum said:

You can't do this out of the box with just a wad file. You need to produce a complete IWAD in some form. In the old days you'd ship a batch and a way to copy the idgame iwad file and add your changes to this copy. You can't distribute (legally) id's sprites and other assets.

 

You could probably fill it with Freedoom content and distribute a complete iwad. That also has its obvious drawbacks, you are supplying 100% new sprite content, not just a few sprite mods.

ive seen many wads that just have a few modded sprites, how do they do that????

Share this post


Link to post
3 hours ago, Patrick_Plays_Doom said:

ive seen many wads that just have a few modded sprites, how do they do that????

 

For vanilla Doom you will have to replace some unused weapon sprites, maybe the firing animation sprites and ammo sprites as well, with the new sprites, and possibly alter the behavior with a DeHackED file.

 

Sprites for new weapons are usually created with a graphics program like Paint.net, Gimp, Krita, etc. 

 

While the examples in Realm667 Armory are done for GZDoom, the sprites themselves can be used in a vanilla Doom. Use Slade3 to do the wad manipulation and converting the sprite images to Doom format. Sprites are loaded into the sprite namespace (S_START - S_END). Open DOOM2.wad and check out the weapon sprites for size and offsets.

Share this post


Link to post
22 minutes ago, Kappes Buur said:

 

For vanilla Doom you will have to replace some unused weapon sprites

Replace? do you mean just  put a ss_start + s_end and place in the new weapon sprites that got modded in with the original weapon names?

 

Share this post


Link to post
5 hours ago, Patrick_Plays_Doom said:

Replace? 

 

Vanilla Doom is very limited with adding new assets of any kind, to use new assets

you have to determine which asset is not part of your map and replace that.

 

If you do not need for example a shotgun and use only the super shotgun then the

new sprites could be used to replace the old weapon. Or just replace a chainsaw

with a double chainsaw.

 

That system has been used for years, but is now, more and more, substituted with

MBF21, which can do this more easily with DECOhack to translate a decorate style

file to a dehacked file.

 

For example see Doomworld Maximum Project 2023 where you can find maps which

do exactly that.

 

Other than those options you would have to use GZDoom or such to add new actors

without replacing anythinf, with DECORATE or ZSCRIPT.

Edited by Kappes Buur

Share this post


Link to post

Let me quote the Doomwiki so that we clear up any misunderstandings:

"Replacing sprites using a PWAD file presents certain problems in the original Doom engine, as all sprites must be in a single continuum between S_START and S_END; and any lump that does not respect the sprite naming convention found between these markers will make Doom abort on startup with an error message. This means that the PWAD must contain all IWAD sprites, even if they are not modified, or they will be invisible. Starting with Boom, source ports started allowing several sprite ranges each between their own S_START (or SS_START) and S_END (or SS_END) markers."

https://doomwiki.org/wiki/Sprite

By sprites it should be understood that we are talking about sprites that scale and change light levels etc, not resources like the menu graphics, status bar, title picture etc. Weapons unfortunately fall into the restrictive category.

A wad that replaces a few weapon sprites, but not the all the others, is not vanilla compatible. You can do it in ports, but not in vanilla. If modding sprites was easy, you would have seen it in a lot more wad files. I'll see if I can't fix the text in the article to be more correct.

Share this post


Link to post

I worked on the DeHacked file for 1000 Lines 3 (1K3) project aimed for Chocolate Doom compatibility (which is imo vanilla enough for anyone who is not specifically doom2.exe DOS-executable afficionado), so I'll give some of my thoughts on how to do sprite replacements for vanilla (Chocolate) Doom.

 

First of all, to clear any more misunderstandings, you don't need to include any more sprites than what you're replacing to keep it compatible with Chocolate Doom.

  • One way to do it (and the way we did it in 1K3) is to include renamed sprites (like PSTG and PSTF instead of vanilla pistol sprites PISG and PISF) to avoid naming clashes. This means you also need to replace the sprite string names in DeHacked.
  • Another way is to use frames that are not used by vanilla Doom. For example, vanilla PISG sprites end at PISGE0, so you could set your sprites to be PISGF0, PISGG0 etc. This avoids renaming sprites and is good for adding frames to an existing weapon, but can be a bit confusing to use if your intention is to completely replace a weapon, not add to it.

 

Below is a link to an example, where I replace the vanilla pistol with a faster shooting one using new sprites (same ones we used in 1K3, but originally sourced from Complex Doom).

 

Download custom pistol zip. Contains .deh and .wad files.

 

What you should do with it is as follows:

  • Open the .deh file in WhackEd. Choose Doom 1.9 for engine and DOOM2.wad for IWAD.
  • In WhackEd, browse the States tab and look for the Pistol in the dropdown menu. In this view, you can browse and modify the states that control the weapon animation and behavior. You can modify durations, used sprite frames, actions (with limits) and more.
  • Also in WhackEd, browse the Strings tab and go to rows 939 - 1076 to find the sprite name strings. I changed the ones on rows 942 and 943 (from PISG and PISF to PSTG and PSTF respectively).
  • Next, open the .wad file in Slade. Here, you can find the compiled DeHacked lump, the sprites themselves and the sprite markers. What we (1K3 devs) found worked on most source ports is to include SS_START, then both S_END and SS_END. The S_END is needed for vanilla to realize when to stop looking for sprites, while the SS_START / SS_END is for other ports who can't deal without having either S_START or SS_START at the beginning of include sprites. This is at least as far as I remember, it has been a good few years since I looked at the intricacies of vanilla DeHacked.

If you are comfortable with DECORATE-style syntax, DECOHack is also a good alternative to WhackEd. Here's a post I made on how to set it up for MBF21 (which can be adapted to vanilla easy enough).

 

To run it with Chocolate Doom, you can either use -dehlump (since the .deh file is included in the wad) or specify the .deh file as a parameter when running Chocolate Doom (using -deh simple_pistol_replacement.deh in this case). I personally think -dehlump is the way to go so you don't have to mess around with a separate .deh file all the time.

 

This should give you a solid idea of the "how" on the technical side. How to actually make the sprites, well, find a good source (and give proper credit) or learn how to art it out yourself.

Edited by Aurelius
Outlined another method for adding sprites.

Share this post


Link to post
5 hours ago, Aurelius said:

I worked on the DeHacked file for 1000 Lines 3 (1K3) project aimed for Chocolate Doom compatibility (which is imo vanilla enough for anyone who is not specifically doom2.exe DOS-executable afficionado), so I'll give some of my thoughts on how to do sprite replacements for vanilla (Chocolate) Doom.

 

First of all, to clear any more misunderstandings, you don't need to include any more sprites than what you're replacing to keep it compatible with Chocolate Doom.

  • One way to do it (and the way we did it in 1K3) is to include renamed sprites (like PSTG and PSTF instead of vanilla pistol sprites PISG and PISF) to avoid naming clashes. This means you also need to replace the sprite string names in DeHacked.
  • Another way is to use frames that are not used by vanilla Doom. For example, vanilla PISG sprites end at PISGE0, so you could set your sprites to be PISGF0, PISGG0 etc. This avoids renaming sprites and is good for adding frames to an existing weapon, but can be a bit confusing to use if your intention is to completely replace a weapon, not add to it.

 

Below is a link to an example, where I replace the vanilla pistol with a faster shooting one using new sprites (same ones we used in 1K3, but originally sourced from Complex Doom).

 

Download custom pistol zip. Contains .deh and .wad files.

 

What you should do with it is as follows:

  • Open the .deh file in WhackEd. Choose Doom 1.9 for engine and DOOM2.wad for IWAD.
  • In WhackEd, browse the States tab and look for the Pistol in the dropdown menu. In this view, you can browse and modify the states that control the weapon animation and behavior. You can modify durations, used sprite frames, actions (with limits) and more.
  • Also in WhackEd, browse the Strings tab and go to rows 939 - 1076 to find the sprite name strings. I changed the ones on rows 942 and 943 (from PISG and PISF to PSTG and PSTF respectively).
  • Next, open the .wad file in Slade. Here, you can find the compiled DeHacked lump, the sprites themselves and the sprite markers. What we (1K3 devs) found worked on most source ports is to include SS_START, then both S_END and SS_END. The S_END is needed for vanilla to realize when to stop looking for sprites, while the SS_START / SS_END is for other ports who can't deal without having either S_START or SS_START at the beginning of include sprites. This is at least as far as I remember, it has been a good few years since I looked at the intricacies of vanilla DeHacked. But the thing 

If you are comfortable with DECORATE-style syntax, DECOHack is also a good alternative to WhackEd. Here's a post I made on how to set it up for MBF21 (which can be adapted to vanilla easy enough).

 

To run it with Chocolate Doom, you can either use -dehlump (since the .deh file is included in the wad) or specify the .deh file as a parameter when running Chocolate Doom (using -deh simple_pistol_replacement.deh in this case). I personally think -dehlump is the way to go so you don't have to mess around with a separate .deh file all the time.

 

This should give you a solid idea of the "how" on the technical side. How to actually make the sprites, well, find a good source (and give proper credit) or learn how to art it out yourself.

Damn man! thanks!

i went on and did what i thought i should do after reading this and it worked!

really appreciate it man!

Edited by Patrick_Plays_Doom

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...