event language compiler/decompiler

The role-playing games (I-X) that started it all and the various spin-offs (including Dark Messiah).
User avatar
vladimir-maestro
Genie
Genie
Posts: 1034
Joined: 19 Jun 2008

Unread postby vladimir-maestro » 07 Jul 2008, 12:01

Another stupid question:

Is there a way to modificate LOD files (original one) with new sprites?
I meen an EXE-programm that do all the things automatical!!! You put it in DATA folder, where all LOD files are, program automatic open LOD and replace existing files into new ones?

It is more easier to create such programm that upload full files!!!

I can just create a EXE archive with all changes\sprites that I made, but need something that will repack LOD files.. (maybe vid\snd files too)

User avatar
GrayFace
Round Table Hero
Round Table Hero
Posts: 1660
Joined: 29 Nov 2005

Unread postby GrayFace » 08 Jul 2008, 13:50

Yes, here it is: viewtopic.php?t=8718
My patches: MM6 MM7 MM8. MMExtension. Tools. Also, I love Knytt Stories and Knytt Underground. I'm also known as sergroj.

User avatar
motter28218
Pixie
Pixie
Posts: 118
Joined: 30 Sep 2007

Unread postby motter28218 » 08 Jul 2008, 16:14

vladimir-maestro wrote:Another stupid question:

Is there a way to modificate LOD files (original one) with new sprites?
I meen an EXE-programm that do all the things automatical!!! You put it in DATA folder, where all LOD files are, program automatic open LOD and replace existing files into new ones?

It is more easier to create such programm that upload full files!!!

I can just create a EXE archive with all changes\sprites that I made, but need something that will repack LOD files.. (maybe vid\snd files too)
You can do this with hex editing, but it is pretty complicated, actually, it's not AS hard for me now that I know what I'm doing, but it took me hours and hours of trial and error. I can try to explain the process if you want but since you said your English is not very good it maybe difficult.

User avatar
vladimir-maestro
Genie
Genie
Posts: 1034
Joined: 19 Jun 2008

Unread postby vladimir-maestro » 08 Jul 2008, 17:55

My english not so bad as you may think.
Problem is in leksics that people use. I know architectural leksics well but not programming leksics ;|

Sendoh
Galactic Gargle Blaster
Galactic Gargle Blaster
Posts: 42
Joined: 06 Jul 2008

Unread postby Sendoh » 08 Jul 2008, 18:52

i get a java error while trying to open global.evt in mm8level editor :S

User avatar
motter28218
Pixie
Pixie
Posts: 118
Joined: 30 Sep 2007

Unread postby motter28218 » 08 Jul 2008, 20:02

Sendoh wrote:i get a java error while trying to open global.evt in mm8level editor :S
Email me I will tell you how to get around that.

motter25420@yahoo.com

User avatar
GrayFace
Round Table Hero
Round Table Hero
Posts: 1660
Joined: 29 Nov 2005

Unread postby GrayFace » 08 Jul 2008, 20:10

Yes, it is too big for the editor.
My patches: MM6 MM7 MM8. MMExtension. Tools. Also, I love Knytt Stories and Knytt Underground. I'm also known as sergroj.

User avatar
motter28218
Pixie
Pixie
Posts: 118
Joined: 30 Sep 2007

Unread postby motter28218 » 08 Jul 2008, 21:48

vladimir-maestro wrote:My english not so bad as you may think.
Problem is in leksics that people use. I know architectural leksics well but not programming leksics ;|
OK, well, let's try it, and Big Daddy if you're paying attention to this at all please feel free to correct me if you know an easier way.

Alright, first understand I'm not an "official" programmer, what I know I've pretty much learned by myself through TONS of trial and error. People like BDJ have helped me alot too, but other than that I'm self taught so I may not know all the correct words for things or half the time even how or why something works, just that it does.

To add sprites, atleast my way, you have to use a hex editor to copy an existing sprite set and paste it in the file. You then have to rename the sprite sets to whatever it is you want to call it and finally, and this is by far the hardest part, you have to modify the array which MUST be in order or none of the sprites will be accessible.

So here's an example of one of the creatures I added to my MM6 mod and how I did it. The creature I wanted was a giant, so the obvious choice for me was to copy the Titan and then mod it.

1. Open MM6/data/sprites.lod with a hex editor. There are two sections in this file, the 1st being relatively small and the 2nd being HUGE.

2. In the FIRST section find the Titan sprite set (Edit-Find-ttn1) Highlight all of them (I think there are 57 if I remember), make sure you don't go to far into the next set. With them all highlighted select Edit-Copy

3. Scroll down to the end of the final sprite in the FIRST section which is wwalk1F4, click your cursor right in front of the text 3APPLE and paste.

4. Now the fun part, do edit-find-ttn1 again, you will now see the entry in the second section, you once again must highlight every 57 entries, this is a HUGE, HUGE block of code, once you've done that, do a copy again and go to the end of the document and paste.

5. Now go back to the beginning of the document and scroll to where you pasted the Titan in the first section, do edit-Replace and rename the ttn to whatever you want, I used xgant for my giant.

6. Now go to the second block of code you pasted and do the same thing.

7. Now for the real tough part, you have to modify the array, and this is tough because it has to go in order and it can't conflict with any of the other arrays. The array is found in the FIRST section of the document which is good because to find it in the 2nd part would be next to impossible.

8. Go ahead and highlight the ttn1atA0 block, here are the hex bits you need to pay attention to: B400 ACFF 1200 2EA1 BF02

9. B400 ACFF 1200 is in EVERY sprite, the next block in this case 2EA1 is DIFFERENT for every sprite but you can ignore it, it's the next 4 digits we want, that is the array, in this case BF02, so that is how you find the array, look for B400 ACFF 1200, ignore the next block, and there you are.

10. Next you need to make up a unique array that immediately follows the final array of the original sprites and the only way I can tell you to do this is through trial and error, I used to have the last array, which is where you need to begin, but my file is so modded right now I don't remember, I think the dragon (CDR1) was the highest but I'm not sure, just play around with it tho, you'll see the pattern.

11. Finally, save, open Sprites with MM8lvleditor and if you did everything right your new sprites will be there, you can now export them, modify them, and import them back.

12. Sorry to say however, this is only part one if you actually want your new monster to show up in the game, but there a few other files you have to mod but let me know if you still even want to do this now that you know what a task it is and I'll tell you the rest.

Hope this helps and anyone out there who knows of an easier way please feel free to chime in.

User avatar
GrayFace
Round Table Hero
Round Table Hero
Posts: 1660
Joined: 29 Nov 2005

Unread postby GrayFace » 11 Jul 2008, 05:55

With viewtopic.php?t=8718 it can be done easier.
1) Make a copy of the lod.
2) Replace all "ttn1" with 4 letters prefix of your new monster. Most probably this will only modify file headers.
3) Open LodCompare. Select original LOD as Original and new one as Modified and click Create Mod Archive.
4) Use "LodMerge.exe <original lod> <mod lod> /b". "Mod lod" is a lod you've just created with LodCompare.
After these steps you'll have all files you need in the "original lod". However, there's an error in my tools and I haven't tried to fix it yet. So, some step may throw an exception...
My patches: MM6 MM7 MM8. MMExtension. Tools. Also, I love Knytt Stories and Knytt Underground. I'm also known as sergroj.

User avatar
GrayFace
Round Table Hero
Round Table Hero
Posts: 1660
Joined: 29 Nov 2005

Unread postby GrayFace » 11 Jul 2008, 06:00

I've made a small update to http://www.grayface.nm.ru/MMFiles.rar after inspecting MM8 disassembly.
My patches: MM6 MM7 MM8. MMExtension. Tools. Also, I love Knytt Stories and Knytt Underground. I'm also known as sergroj.

User avatar
motter28218
Pixie
Pixie
Posts: 118
Joined: 30 Sep 2007

Unread postby motter28218 » 17 Jul 2008, 02:57

GrayFace wrote:With viewtopic.php?t=8718 it can be done easier.
1) Make a copy of the lod.
2) Replace all "ttn1" with 4 letters prefix of your new monster. Most probably this will only modify file headers.
3) Open LodCompare. Select original LOD as Original and new one as Modified and click Create Mod Archive.
4) Use "LodMerge.exe <original lod> <mod lod> /b". "Mod lod" is a lod you've just created with LodCompare.
After these steps you'll have all files you need in the "original lod". However, there's an error in my tools and I haven't tried to fix it yet. So, some step may throw an exception...
Yes but will this also resolve the issue of of having conflicting arrays?? If so that is great, will definitely save alot of time. Thank You.

User avatar
GrayFace
Round Table Hero
Round Table Hero
Posts: 1660
Joined: 29 Nov 2005

Unread postby GrayFace » 17 Jul 2008, 06:39

motter28218 wrote:Yes but will this also resolve the issue of of having conflicting arrays??
I don't quite get what you mean by conflicting arrays. It would extend the files table, move files to free space for it if needed and all files would be in the correct order if that is what you mean.
My patches: MM6 MM7 MM8. MMExtension. Tools. Also, I love Knytt Stories and Knytt Underground. I'm also known as sergroj.

User avatar
motter28218
Pixie
Pixie
Posts: 118
Joined: 30 Sep 2007

Unread postby motter28218 » 29 Jul 2008, 15:21

GrayFace wrote:
motter28218 wrote:Yes but will this also resolve the issue of of having conflicting arrays??
I don't quite get what you mean by conflicting arrays. It would extend the files table, move files to free space for it if needed and all files would be in the correct order if that is what you mean.
Whenever I add new sprites (mind you I use hex editing to do this) it would add the sprites but then it would give an error message saying the array was out of order. The only way I found to remedy this was by again alot of trial and error, I found the array sequence and would have to assign the values to my new sprites starting where the last sprite had ended.

If your way works, that is awesome and I thank you, I haven't tried it yet but I will, like I have said, I'm not a programmer, everything with me is self-taught so I don't always know all the terminology and what not so please bear with me and thanks for the help.

Otter

User avatar
GrayFace
Round Table Hero
Round Table Hero
Posts: 1660
Joined: 29 Nov 2005

Unread postby GrayFace » 01 Aug 2008, 17:21

My patches: MM6 MM7 MM8. MMExtension. Tools. Also, I love Knytt Stories and Knytt Underground. I'm also known as sergroj.

User avatar
vladimir-maestro
Genie
Genie
Posts: 1034
Joined: 19 Jun 2008

Unread postby vladimir-maestro » 16 Oct 2008, 17:12

GrayFace wrote:With
1) Make a copy of the lod.
2) Replace all "ttn1" with 4 letters prefix of your new monster. Most probably this will only modify file headers.
3) Open LodCompare. Select original LOD as Original and new one as Modified and click Create Mod Archive.
4) Use "LodMerge.exe <original lod> <mod lod> /b". "Mod lod" is a lod you've just created with LodCompare.
After these steps you'll have all files you need in the "original lod". However, there's an error in my tools and I haven't tried to fix it yet. So, some step may throw an exception...
How to replace ttn1? Using hex editor or what? And if in hex - how to do this?


Return to “Might and Magic”

Who is online

Users browsing this forum: Tomsod and 33 guests