Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 03-28-2019, 06:36 PM
LanternEQ
Fire Beetle
 
Join Date: Feb 2019
Posts: 8
Default Kaiyodo Spell Editor

I am working on a Unity implementation of the classic EverQuest game. I want to start working on spell effects soon. I understand Kaiyodo had a spell editor working around the time the classic client was used. I figure it is a good starting point for reverse engineering the particle effects. Does anyone have a copy?

Thanks!
Reply With Quote
  #2  
Old 03-29-2019, 01:16 AM
Zaela_S
Hill Giant
 
Join Date: Jun 2012
Posts: 216
Default

As far as I remember it, Kaiyodo's spell editor wouldn't tell you anything about spell particles beyond what ID numbers different particle effects had.

If you're specifically interested in the classic, pre-Luclin spell particle effects, information is hard to come by. I believe all the data for these are hardcoded in the client binaries (probably one of the graphics DLLs) rather than being loaded from a separate client data file (as most graphics-related things are).

Over on the Project1999 forums, Telin has done a lot of work reimplementing the particle effects from the pre-Luclin spell particles in the post-Luclin particle effect system, so he'd probably know the most on the subject. Though I don't know if he'd be interested in sharing.


As a side note, particle effect data for classic weapon models (e.g., epics) is exposed in client data files, and is relatively simple and moderately understood. There's a decent chance that the particle data for classic spells used the same format or something similar, since it would have fed into the same particle effect system. (In the post-Luclin system, data for spell and weapon particles definitely use the same format.) I had a barebones tool for editing this classic weapon particle data (some videos of results can be seen in this thread).
Reply With Quote
  #3  
Old 03-29-2019, 12:44 PM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,165
Default

Is classic spell effects in spells.eff? This is just a memcpy of some spell effect data, the "SpellAffectIndex" is actually just an index to an effect in this array.
Reply With Quote
  #4  
Old 03-30-2019, 02:02 AM
LanternEQ
Fire Beetle
 
Join Date: Feb 2019
Posts: 8
Default

Quote:
Originally Posted by Zaela_S View Post
As far as I remember it, Kaiyodo's spell editor wouldn't tell you anything about spell particles beyond what ID numbers different particle effects had.

If you're specifically interested in the classic, pre-Luclin spell particle effects, information is hard to come by. I believe all the data for these are hardcoded in the client binaries (probably one of the graphics DLLs) rather than being loaded from a separate client data file (as most graphics-related things are).

Over on the Project1999 forums, Telin has done a lot of work reimplementing the particle effects from the pre-Luclin spell particles in the post-Luclin particle effect system, so he'd probably know the most on the subject. Though I don't know if he'd be interested in sharing.


As a side note, particle effect data for classic weapon models (e.g., epics) is exposed in client data files, and is relatively simple and moderately understood. There's a decent chance that the particle data for classic spells used the same format or something similar, since it would have fed into the same particle effect system. (In the post-Luclin system, data for spell and weapon particles definitely use the same format.) I had a barebones tool for editing this classic weapon particle data (some videos of results can be seen in this thread).
Thanks for the reply. I took a quick look in the files and saw that there is spdat.eff, which contains binary data about the spells. There was also spells.eff, which may contain the particle data. I originally assumed that there was something in these files about the particle system it uses. I didn't assume it had all the data but I have a classic client and a test server so I can always verify the effects and reverse engineer that way.

I'll see if I can get in touch with Telin and see what he has so far. If I make any progress, I'll release it to the community.
Reply With Quote
  #5  
Old 03-30-2019, 02:03 AM
LanternEQ
Fire Beetle
 
Join Date: Feb 2019
Posts: 8
Default

Quote:
Originally Posted by demonstar55 View Post
Is classic spell effects in spells.eff? This is just a memcpy of some spell effect data, the "SpellAffectIndex" is actually just an index to an effect in this array.
Interesting. I will take a look. I saw the spells.eff file and wondered what it does. By effect do you mean visual or logical effect? Thanks!
Reply With Quote
  #6  
Old 03-30-2019, 05:47 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

Wasn't the original client developed in Maya?
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #7  
Old 03-31-2019, 12:21 PM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,450
Default

spells_us.txt is pretty much the same format as spdat.eff, but comma delimited as opposed to memcpy'd in blocks of memory.

I'll see if I can find the info I had on it; I used to have an 010 editor script for parsing that file and converting it into a spells_us.txt file.
Reply With Quote
  #8  
Old 03-31-2019, 01:42 PM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,165
Default

Quote:
Originally Posted by Secrets View Post
spells_us.txt is pretty much the same format as spdat.eff, but comma delimited as opposed to memcpy'd in blocks of memory.

I'll see if I can find the info I had on it; I used to have an 010 editor script for parsing that file and converting it into a spells_us.txt file.
spells.eff is a different file (which is stil memcpy'd)
Reply With Quote
  #9  
Old 05-15-2019, 08:36 PM
LanternEQ
Fire Beetle
 
Join Date: Feb 2019
Posts: 8
Default

Hey guys. Had a chance to check this out. spdat.eff and spells.eff are both binary.

spdat.eff - Contains information about each spell, it's type, mana cost, effects, etc. I have this parsed.

spells.eff - I assume this contains information about the particles as it references the sprite strings founds in gequip.s3d. I do think the actual particle system logic is inside either an executable or the dll, which is fine. I had planned on reverse engineering it anyway.

Here is what I currently need to do:

1. Find the index reference in the spdat.eff entry which corresponds with the visual effect in spells.eff.
2. Figure out the format for spells.eff. I have take a brief look at it and it's not like most EQ data (fixed length structs), so it will be a bit more difficult.
3. Recreate the particle systems by testing them in game. For example, if the healing spell references a specific visual effect, I can break the particle system down into chunks and recreate it in Unity.

Will be slow and require a lot of time (and I am pretty sure it hasn't been done before), but I will get it done.

In the meantime, if anyone has any information about the spells.eff file, that would be great.
Reply With Quote
  #10  
Old 05-21-2019, 05:20 PM
LanternEQ
Fire Beetle
 
Join Date: Feb 2019
Posts: 8
Default

I have finished reverse engineering spdat.eff and have found the index into the spells.eff file.

I am also around 40% finished reverse engineering the spell effects. Turns out it was a complicated but fixed length structure.

Thanks for your help. Will share my findings when complete if anyone is interested.
Reply With Quote
  #11  
Old 11-10-2020, 03:27 PM
Furinex
Hill Giant
 
Join Date: Apr 2002
Location: Rochester, NY
Posts: 178
Default

Quote:
Originally Posted by LanternEQ View Post
I have finished reverse engineering spdat.eff and have found the index into the spells.eff file.

I am also around 40% finished reverse engineering the spell effects. Turns out it was a complicated but fixed length structure.

Thanks for your help. Will share my findings when complete if anyone is interested.
Yeah, of course were interested. I developed my own version of this, I'd love to see how it compares. Ive gotten only to about velius with mine.
__________________
U.S. Navy - Retired
17 Year EQ Veteran
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 02:21 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3