EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=590)
-   -   Kaiyodo Spell Editor (https://www.eqemulator.org/forums/showthread.php?t=42376)

LanternEQ 03-28-2019 06:36 PM

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!

Zaela_S 03-29-2019 01:16 AM

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).

demonstar55 03-29-2019 12:44 PM

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.

LanternEQ 03-30-2019 02:02 AM

Quote:

Originally Posted by Zaela_S (Post 262022)
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.

LanternEQ 03-30-2019 02:03 AM

Quote:

Originally Posted by demonstar55 (Post 262024)
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!

Uleat 03-30-2019 05:47 PM

Wasn't the original client developed in Maya?

Secrets 03-31-2019 12:21 PM

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.

demonstar55 03-31-2019 01:42 PM

Quote:

Originally Posted by Secrets (Post 262049)
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)

LanternEQ 05-15-2019 08:36 PM

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.

LanternEQ 05-21-2019 05:20 PM

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.

Furinex 11-10-2020 03:27 PM

Quote:

Originally Posted by LanternEQ (Post 262565)
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.


All times are GMT -4. The time now is 07:47 PM.

Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.