Warhammer Dark Omen Forum

Modifications => 2D Sprites => Topic started by: olly on December 28, 2013, 06:04:43 PM



Title: Adding more Sprites to Dark Omen
Post by: olly on December 28, 2013, 06:04:43 PM
Just having a problem when trying to add new sprites to Dark Omen, as the "Spare" slots are only 80 frames and therefore unsuitable for Archers or Mages that require more frames. Most of the Shadow of the Horned Rat sprites are more than 80 frames and to avoid overwriting existing Archer sprites, I've been trying to add more Sprites to the Sprite Table listed in EngRel.exe but without much success -probably requires .DLL linking to a custom table.

http://wiki.dark-omen.org/do/DO/Sprites (http://wiki.dark-omen.org/do/DO/Sprites)

http://wiki.dark-omen.org/do/Updated_Sprite_Format (http://wiki.dark-omen.org/do/Updated_Sprite_Format)

(http://img716.imageshack.us/img716/6374/8o8s.jpg) (http://imageshack.us/photo/my-images/716/8o8s.jpg/)

So I copy and pasted the Sprite Slot for ELFARC in EngRel.exe and added to the bottom of the list and called it ELFARC2. Then copy and pasted the ELFARC.SPR to be a new ELFARC2.SPR in Sprites folder. Then using Wh32Edit and Hex Editor, assigned PLYR_ALL.ARM William Fletcher (Grudge XBow) to have sprite 153, since ELFARC2 is the last sprite in the table of position 153 or 99 Hex. The Game works but sadly doesn't display any sprite frames, so any further assistance would be greatly appreciated since there are loads of SOTHR sprites to add.

:)



Title: Re: Adding more Sprites to Dark Omen
Post by: aqrit on January 01, 2014, 08:16:51 AM
here is a start...

The table of int16's starting at file offset 0x000E9C88 in the english version of RelEng.exe seems to control whether a "sprite slot" can be used for archers, etc.

For example:
Create a copy of "GRUXBW.SPR" and rename it to "ST_ZZNewPlyr3.SPR" in the sprite folder.
Using wh32edit_2.x set the grudgebringer xbow unit to use the ST_ZZNewPlyr3 sprite in the PLYR_ALL.ARM file.
Using a Hex-editor write the value "0x7E 0x00" at file offset 0x000E9CDA in RelEng.exe
Start a  (new?) single player game to test...
---

ST_ZZNewPlyr3 is slot 0x29 so ( 0x000E9C88 + ( 0x29 * 2 ) ) =  0x000E9CDA
Why "0x7E 0x00" ? because that was the value that slot 0x12 was using. ( GRUXBW.SPR )



Title: Re: Adding more Sprites to Dark Omen
Post by: mattressses on January 01, 2014, 02:50:14 PM
Amazing find, aqrit! The fixed sprite-types have been one of the most annoying limitations in modding DO, now I can give pistols to whoever I want!!

I've gotten the mounted wizard (slightly modified) from SOTHR working ingame as ST_ZZNewPlyr3 using the value used for the BRIGHT sprite (a800), haven't played around with it extensively but everything seems to work fine!
(http://i.imgur.com/eB9Dosg.png)
(bonus gyrocopter shot included)

To make it a little easier to figure out the values, I sorted them (in little-endian, so 7e00 becomes 007e) by the sprites associated with them, I might have made some mistakes, though:
Quote
0000 = VOIDTYPE/XST_ZNewMisc5/XST_ZNewMisc6/XST_LastSprite
000e = BtlSprit/flags
001c = missiles
002a = mi
0038 = SPL_ITEM
0046 = SPL_BRI
0054 = SPL_BRI
0062 = SPL_BRI
0070 = SPL_DARK
007e = GRUINF/GRUXBW/OUTINF/IMPGRT/ARTILL/NGOB/NGARCH/ORCBOY/BIGUNS/MUMMY/SKELWR/WIGHT/BANSWD
008c = GRAILK/KREALM/BERNHD/GRUCAV/CARLSS/OUTPIST
009a = CANNON/MORTAR
00a8 = BRIGHT
00b6 = ICEMAG
00c4 = NGSHAM
00d2 = ORCSHM
00e0 = NECRO
00ee = CARST
00fc = IMPHAL/GLADE
010a = DWARF/GHOUL
0118 = PEASMN/PEASBY/PEASWM
0126 = ZOMBIE
0134 = ELFARC/ARRERB
0142 = BOAR
0150 = CHARIOT/NAGASH
015e = SKELHS
016c = SPIDER/SCORPN
017a = TROLL/WRAITH
0188 = FLAGEL
0196 = OGRE/TREEMN
01a4 = STMTNK
01b2 = FANATIC
01c0 = RAGNAR
01ce = DREAD
01dc = SKELCV/UNKNIG
01ea = BOLT
01f8 = ROCKLB
0206 = SSKULL
0214 = DUMMY
0222 = IMPBOW/SKELBW/BANARC
0230 = VAMP
023e = Unused sprites (ST_*)


It's a bit weird that Ice Mage and Bright Wizard have different values, or that Wood Elf Archers and Arrer Boyz use the same value (or Troll/Wraith, or Halberdiers and Glade Guard).

Thanks again, aqrit! You've really breathed new life into DO modding with the discoveries you've made over the past year!


Title: Re: Adding more Sprites to Dark Omen
Post by: olly on January 01, 2014, 10:29:56 PM
What a fantastic New Year this is going to be, Big thanks for the Sprite Fix Aqrit - saves me having to overwrite existing Dark Omen archers and mages, when adding new sprites like the Shadow of the Horned Rat like the Skaven Grey Seer Thanquol, instead of pasting over original Vampire. Many thanks to Mattressses for updated list, will look forward to your new campaigns!

 (http://img59.imageshack.us/img59/4146/k0l7.jpg) (http://imageshack.us/photo/my-images/59/k0l7.jpg/)

(http://img51.imageshack.us/img51/4404/1nnp.jpg) (http://imageshack.us/photo/my-images/51/1nnp.jpg/)

:)


Title: Re: Adding more Sprites to Dark Omen
Post by: aqrit on January 05, 2014, 02:14:49 AM
I do not foresee any problems ripping out the sprite table to an external one created by a dll.

sprite table [ VA: 004CEB50 to 004D177C ] ( 257 entries )
Code:
struct sprite_slot
{
DWORD ref_count; // things using this sprite ( units, unit leaders, etc. )
char* name[32]; // GRUXBW, ST_ZZNewPlyr3, etc.
DWORD type_id; // ?? ( always 0x8 for units )
DWORD loaded_index; // index in loaded_sprite_array ( pointer stored at VA: 0x526D24 )
};

but it will take awhile to wade thru all the cross references
e.g.
sub_4184B0: get type_id
sub_4184D0: inc ref_count
sub_4184F0: dec ref_count
sub_418510: zero all ref_counts
sub_418540: get loaded_index
sub_42B510: count all used sprites, alloc, but then only load the type 0x08 sprites...
sub_42B600: zero all loaded_index and then free


Title: Re: Adding more Sprites to Dark Omen
Post by: olly on January 05, 2014, 02:12:10 PM
Sounds promising

:)


Title: Re: Adding more Sprites to Dark Omen
Post by: aqrit on January 18, 2014, 10:57:22 AM
This seems to work.
https://github.com/aqrit/Dark-Omen-Mod-Selector/commit/9682623806d2e7ad3999c6ae4fbd193bac092271

I'll change it to read-in the values from a text file sometime.
 


Title: Re: Adding more Sprites to Dark Omen
Post by: olly on January 18, 2014, 05:50:06 PM
awesome code and comments, thanks!

:)



Title: Re: Adding more Sprites to Dark Omen
Post by: Grend on February 05, 2014, 05:32:32 PM
This along with the code that allows for mixed spells really adds a lot of possibility to modding :)
Do you know of a way to add new pages to the army book as well by any chance?


Title: Re: Adding more Sprites to Dark Omen
Post by: lordbraprus on March 10, 2014, 05:25:24 PM
wow wow owowo!! nice team work, really.

i remember when making mods with more sprites and units, that yes, if you reallly wanted to add more races while keeping the original ones (hu, un, or) or even, keeping that ones, but making a 4th race by remplacing some "remplasable units" and making a new race, you were Fuc@€ing stoped by that sprites slots problem, the number of frames .. and the number of units slots available.

ANd.. while you could do the "mod selector" stuff. it was a mess.. grend works was good but  (it is a perfectionist thing maybe) i couldnt enjoy it: units iwth the same banner, and races with different banner colurs pallete (because it was used in other  races too) etc..

SO, fixing that would atract me a lot to keep making 3d modles and then 2D sprites, but mostly, 3D models.. i have being working a lot with Zbrush, if there is no problem  i wanna share some of the works in a post, i guess that in "2D Sprites" main topic. all of them are medieval/fantasy of course :)


Title: Re: Adding more Sprites to Dark Omen
Post by: aqrit on March 13, 2014, 06:09:18 AM
http://bitpatch.com/downloads/do_mod_helper.zip (http://bitpatch.com/downloads/do_mod_helper.zip)

More sprite/banner slots
More unit names
More army book entries
allow spellcasters to have spells from any school of magic
allows the player viewpoint to move out ten times further from the ground
repoints [armytmp] to a folder in the game directory
fixed heap corruption problem with games's realloc function
multi-player look of the [tab/space] battlemap in single-player

barely tested and only with single-player -> New Campaign

does not do "heads" or PT_sprites yet


Title: Re: Adding more Sprites to Dark Omen
Post by: olly on March 13, 2014, 05:58:28 PM
Totally awesome creation!

Our Eternal thanks to Aqrit. Allowing additional new sprites to Dark Omen is a dream come true, especially combined with your other height map tool, that now allows us to build additional new maps! (and the 3D fix and the Shadow Of The Horned Rat sprites and overhead map fix and...)

Updated Campaign Modding guide coming soon!


:)

(http://imagizer.imageshack.us/v2/xq90/842/rog3.jpg) (https://imageshack.com/i/nerog3j)


Title: Re: Adding more Sprites to Dark Omen
Post by: lordbraprus on March 17, 2014, 01:51:33 AM
oh very well Aqrit, fantasticus!

as you say, it would be a "beta" right? the tool you made will be improved by time right? anyway, i will check it, i dont know how might it work.


Title: Re: Adding more Sprites to Dark Omen
Post by: olly on May 10, 2014, 07:48:39 PM
Sorry for late reply (have been moving houses) but big thanks to Aqrit as this mod works really well in single player and multiplayer!

Add new sprites to Dark Omen without having to overwrite any orignals - Skaven Mod Example

http://www.youtube.com/watch?v=RTHslnQy2Yk&feature=share&list=UU8sdepsCtmpBUP4U9nVE3Qg (http://www.youtube.com/watch?v=RTHslnQy2Yk&feature=share&list=UU8sdepsCtmpBUP4U9nVE3Qg)

:)

(it maybe me but I cant get custom banner in army book - will post xslots contents for more detail)

Modding Guide coming soon - add your own armies and new maps


Title: Re: Adding more Sprites to Dark Omen
Post by: hari8 on May 12, 2014, 10:19:49 PM
wooooooow very nice stuff coming, keep it up :)

Modding Guide coming soon - add your own armies and new maps

Maybe it'll be possible to make armies and campaigns just by drag&drop :) then we could have absolutely infinite fun with DO  ;D


Title: Re: Adding more Sprites to Dark Omen
Post by: olly on August 11, 2014, 11:46:06 PM
Just some latest Dark Elves work in progress and will start adding all the excellent sprites from Dark Omen Expanded mod, help required once I finally publish easy to follow guide, so we can play all the Warhammer Races!

http://youtu.be/Ieo0bXskwq4 (http://youtu.be/Ieo0bXskwq4)

:)


Title: Re: Adding more Sprites to Dark Omen
Post by: cuthalion on April 24, 2015, 03:12:35 PM
OK so I downloaded Aqrit's files and placed them as per instructions. Still, I may have missed information on how I actually use extra sprite and banner slots to new armies.
Could someone clarify?
1. Imagine I have new archers - let it be Dwarf Thunderers. I have thunderers.spr sprite file and thunder_banner.spr banner file.
2. I go to WH32Edit with new database.xml and I see a lot of 'xslots' there. How do I place my .spr files so that when I create Dwarf Thunderers and set all other flags, Dark Omen would see my sprites, understand that it is archers' sprite structure etc?
3. What do I have to write in xslots.txt? and another question on this point: does what I write there will actually rename my troops not only in Troop Roster but also in battle map during battles?

Thank you in advance.


Title: Re: Adding more Sprites to Dark Omen
Post by: olly on April 24, 2015, 05:19:43 PM
Please examine my Skaven Mod files and read the How to create Campaign Guide for more info, however this is a quick guide for you ->


1) Rename your thunderers.spr to 001.spr and paste into your Mods folder (I'm using my Skaven Mod)

C:\Program Files (x86)\Dark Omen\Mods\Skaven\Graphics\Sprites

2) Rename your thunder_banner.spr to 001.spr and paste into

C:\Program Files (x86)\Dark Omen\Mods\Skaven\Graphics\Banners

3) Create new Book Art Thunders1.bmp & Thunders2.bmp for the Troop Army book and paste into

C:\Program Files (x86)\Dark Omen\Mods\Skaven\Graphics\Books\Troops

4) Open the army file B101MRC.ARM using Wh32Edit (with new database.xml) in

C:\Program Files (x86)\Dark Omen\Mods\Skaven\GAMEDATA\1pbat\B1_01

and create an additional unit that will use xSlot Sprite 001  and xSlot Banner 001 and make it unit type Human Archers and weapon Pistol, Unit ID 5

You will have to do the same in PLYR_ALL.ARM C:\Program Files (x86)\Dark Omen\Mods\Skaven\GAMEDATA\1PARM and ensure Unit ID is 31 (since there are already 30 originals in Human Army)


[attachment=1]

[attachment=2]



Then open xSlots .txt in C:\Program Files (x86)\Dark Omen\Mods\Skaven\PRG_ENG and create a new xSlot

NAME 01 "Thunders"
SPRITE 001 001 0x0222                     (This will use sprite type 0222 = IMPBOW/SKELBW/BANARC )
SPRITE 001 001 0x0222                     (This will use sprite type 0222 = IMPBOW/SKELBW/BANARC )
BANNER 001 001 0
BOOK 00 01 "[BOOKS]\\Troops\\Thunders1.bmp" "[BOOKS]\\Troops\\Thunders2.bmp" The Thunderers are migthy warriors etc... m5 ws3 bs3 34 t4 w4 i7 a4 Ld7"

Following Aqrit's template

// NAME slot_id "a name less than 64 characters"
// SPRITE slot_id "sprite_file_no_extension" sprite_type_id
// BANNER slot_id "sprite_file_no_extension" banner_shape_id
// BOOK slot_id banner_frame "leader_sprite" "troop_sprite" "unit_description"

(You can of course start at sprite 000.spr and banner 000.spr and xSlot 00 )

:)


Title: Re: Adding more Sprites to Dark Omen
Post by: cuthalion on April 24, 2015, 09:07:41 PM
Great thank you I will try this out. Just 1 small question: Are you sure I have to edit my merc army for each mission? plyr_all is not enough?


Title: Re: Adding more Sprites to Dark Omen
Post by: cuthalion on April 28, 2015, 02:34:44 PM
By the way, it is not necessary to make dwarf archers human archers. They can as well be set dwarf archers (unit_id=26) even though I am not sure it changes anything DarkOmen code wise: Humans and dwarves talk about the same way.
In Chaos Dwarves I had goblin cavalry with unit_id=19 though classic Dark Omen does not have any goblin cavalry units, and wolfriders did talk as nightgoblins.


Title: Re: Adding more Sprites to Dark Omen
Post by: cuthalion on April 29, 2015, 10:31:30 AM
I have a problem: I cannot make Xslots work :(
Before I test it further and figure out what is wrong, I have a few questions:

1. If I want only additional sprites but do not want banners, army book entries or names, I can add just 1 sprite line per sprite in xslots.txt cannot I?

2. More general question: Is order in file Xslots.txt of any importance? Can it be something like:

SPRITE blablabla
NAME blablabla
NAME blablabla
BANNER blablabla
SPRITE blablabla
ARMY blablabla
NAME blablabla
etc?

3. Are there requirements for exec. file? I used Ghabry's Mod Selector .exec that works fine with chaos dwarves/original campaign switch etc.

4. Do I understand it correct that I place .dll at the same folder where I have working EngRel.exe, while I place xslots.txt in ../Mods/My Mod/Eng_Rel/xslots.txt?


Title: Re: Adding more Sprites to Dark Omen
Post by: Ghabry on April 29, 2015, 11:27:47 AM
I think xslots and co. is not directly implemented in the mod selector but uses some extralib by aqrit.
At least I never merged such code in mod selector.


Title: Re: Adding more Sprites to Dark Omen
Post by: cuthalion on April 29, 2015, 04:29:47 PM
I found a reason for 1 of my problems with xslots.

When I place xslots.txt to ../Mods/My Mod/Prg/xslots.txt (or Prg_Eng, does not matter), the game does not find it and crashes as soon as it has to display 001.spr

When I copy the file to  ../Prg/xslots.txt (original warhammer installation) then game finds my 001.spr placed to ../Mods/My Mod/Graphics/Sprites/001.spr and displays correct sprite in first mission.

is it supposed to be that way? I was under impression that each mod may have its own xslots.txt, and Olly's instruction implied the same.


Title: Re: Adding more Sprites to Dark Omen
Post by: olly on April 29, 2015, 05:37:02 PM
Sounds like you've got that strange download version that installs PRG instead of PRG_ENG (which xslots needs I think). You must have a blank xslots.txt in your main C:\Program Files (x86)\Dark Omen\PRG_ENG containing just the comments and no extra Troops. Yes you should keep to this format. 

// NAME slot_id "a name less than 64 characters"
// SPRITE slot_id "sprite_file_no_extension" sprite_type_id
// BANNER slot_id "sprite_file_no_extension" banner_shape_id
// BOOK slot_id banner_frame "leader_sprite" "troop_sprite" "unit_description"


Then in your ../Mods/My Mod/PRG_ENG have the proper version of xslots containing all of your Troops. You already have a copy of my Dark Omen folder and Skaven mod, that  all use PRG_ENG folders and please just use it a working template to change.  You will notice there is a PRG folder that comes with the Mod Selector but I don't copy xslots.txt or our .dll files into it.


ps. I've sent you a Private Message concerning the version of Dark Omen

:)


Title: Re: Adding more Sprites to Dark Omen
Post by: cuthalion on April 29, 2015, 05:53:57 PM
Yes thank you I will try to download yours.

I've been having Dark Omen XP-Vista-7.exe for years and it has not failed me till this time :)


Title: Re: Adding more Sprites to Dark Omen
Post by: olly on April 30, 2015, 10:27:11 PM
Cool, remoted onto your pc using TeamViewer and reinstalled game using DO Cd and an important step was renaming and using the Full3dRenameToEngRelBeforeUsing.exe to be the new EngRel.exe in both PRG_ENG and Skaven PRG_ENG folders, as the original EngRel.exe was not modified to use mod selector and xslots (will re-upload mod folders).


:)  


Title: Re: Adding more Sprites to Dark Omen
Post by: cuthalion on May 04, 2015, 01:11:23 PM
Either I do something wrong or there is a minor incompatibility between Ghabry's Mod Selector and Aqrit's extended sprite table mod. Let me describe on my own example.
So I have a classic data warhammer+mod selector installed. I want to make a mod and I want to add a cavalry unit to my mod.
1. I make a new sprite, name it for example 012Cavalry.spr and place it in dark omen/mods/my mod/graphics/sprites/012Cavalry.spr
    That folder contains only 1 - this one - file.
2. I assign slot 012 to grugebringer cavalry in wh32edit, and also make a line in xslots.txt:
SPRITE 012 012Cavalry 0x008C

3. When I start my campaign the game crashes. It took me a while to understand why.
What fixed the problem is: I had to copy ANY classic cavalry file and place it in my mod in /graphics/sprites (for example outpis.spr or grucav.spr) next to file 012cavalry.spr. Then everything is displayed correctly.

4. After first successful game start, I remove grucav.spr from /mods/my mod/graphics/sprites and the game does not crash anymore.
I am not sure if it is easier to fix it on side of xslots or mod selector.


Title: Re: Adding more Sprites to Dark Omen
Post by: cuthalion on June 18, 2015, 01:29:27 PM
A question about sprite file HORSE.SPR
It's an unsaddled horse.

Any idea how I can use it in my army files?

The problem is that this sprite is not used by any armies in original campaign - unlike Skeleton Horse that is used for Chariots. So I do not know what Id it has. It is not present in Ghabry's army editor - due to the same reason probably: Ghabry keeps values only from existing original troops.

It is not present in list of sprite types in this thread. Only Skeleton Horse is there. and the sprite file for Skeleton Horse has a different structure.


Title: Re: Adding more Sprites to Dark Omen
Post by: Leilond on April 07, 2017, 02:49:22 PM
There is no way to make this work for me

I try to change the goblin archer banner in mission 1, just to understand how it works

1) I created the xslots.txt file in PRG_ENG folder in my mod campaign
2) I added there these lines
Code:
// NAME slot_id "a name less than 64 characters"
// SPRITE slot_id "sprite_file_no_extension" sprite_type_id
// BANNER slot_id "sprite_file_no_extension" banner_shape_id
// BOOK slot_id banner_frame "leader_sprite" "troop_sprite" "unit_description"

NAME 01 "Stormvermin"
SPRITE 001 001Stormvermin 0x00FC
BANNER 001 001B_Stormvermin 0
3) I copied the stormvermin banner and sprite from another mod (wood elf) and copied it in the right folders and renamed them to "001Stormvermin.spr" (in sprite foldsrs) and "001B_Stormvermin.spr" (in banner folders)


When I try to change the goblin archers banner (using Wh32Edit), it reverts back to the previous value when I leave the field or when I reload the file. I tried to put in the field
- [ xSlot Banner 01 ] (revert back to previous value)
- [xSlot Banner 01] (no blank spaces from brackets, revert back to previous value)
- xSlot Banner 01 (without brackets, revert back to previous value)
- 01 (it becomes "1" without the leading "0" and in game it uses the Grudgebringer Cavallry banner)

I also tried to add a xslots.txt empty file (oly comments) in original PRG_ENG folder


Title: Re: Adding more Sprites to Dark Omen
Post by: olly on April 07, 2017, 06:39:28 PM
I will have to recreate what you have done but quickly try starting from NAME 00 not 01 please.


Title: Re: Adding more Sprites to Dark Omen
Post by: Leilond on April 08, 2017, 11:02:03 AM
Done. No way
To add some more information, I tried to open the PLYR_ALL.ARM in the 03) Wood Elf mod, and. I found in the Orion banner, the value 558. If I try to change it to any [xSlot Banner XX] (with XX any number I want) it revert to previous value if I leave the field (clicking on any other field) or even if I save and reload

It look like I miss some file, or some path or the like


Title: Re: Adding more Sprites to Dark Omen
Post by: olly on April 08, 2017, 11:20:35 AM
Please try copying and renaming Dark Omen 2 mod and use an original whmtg.txt script file and then test changing banners etc


Title: Re: Adding more Sprites to Dark Omen
Post by: Leilond on April 08, 2017, 01:17:04 PM
Nothing changed
To make the try I also tried to directly edit PLYR_ALL.ARM in DarkOmen 2 and I've got the problem there too. Dwarf Gotrek banner value is 489 and if I try to change it to [xSlot Banner XX] it revert back to 489 if I leave the field or save and reload


Title: Re: Adding more Sprites to Dark Omen
Post by: olly on April 08, 2017, 01:21:38 PM
Download and use this version of Wh32Edit as it contains xslots database.xml

https://www.dropbox.com/s/a8dwmx8r9o72wdk/wh32edit_2.0b3_win32.zip?dl=0 (https://www.dropbox.com/s/a8dwmx8r9o72wdk/wh32edit_2.0b3_win32.zip?dl=0)



Title: Re: Adding more Sprites to Dark Omen
Post by: Leilond on April 08, 2017, 01:43:50 PM
That's it!!!!!


Title: Re: Adding more Sprites to Dark Omen
Post by: olly on December 02, 2017, 05:36:10 PM
Aqrit or Ghabry, is there any chance you could increase the amount of xslots for sprites and 3d heads please, as we've got loads more characters and races to add.

Many thanks and please let me know if I can do any of the mundane duplication tasks.

:)