Page 1 of 1

Question to UOFiddler - generated art.mul is much bigger than original?

Posted: Fri Aug 18, 2017 12:47 pm
by OWHorus
Hello,

subject says it all: I have an art.mul file (Client v5, UO-ML, already changed a bit, but similar size like original) and want to change an item picture.
When I extract the picture, it is a BMP format. My new picture has the exact dimensions and the format of the old picture.

Using UOFiddler to change the item picture works fine, then I can save the new art.mul and artidx.mul. This seems to work fine.

But: The new art.mul is nearly double the size of the original??? Original has around 60 MB, new art.mul has around 112 MB. Why?
Artidx.mul has the exact same size like the old file, as it should be - I did not add anything, I changed only an item picture.

Does anybody know why this happens? I would be grateful, because searching in the source will take a lot of time, I am not very proficient with C#.

Thank you
OWHorus

EDIT:
I just saved an unchanged art.mul, i.e. I loaded UOFiddler, the went to the Item Tab, right clicked on a picture and selected Save. Art.mul is written back to the disk, and is bigger exactly like the changed version. I also compared the two files, original and UOFiddler generated art.mul, and they are identical until around 230 kBytes, then they differ, and nearly in every byte. What is going on here?

Re: Question to UOFiddler - generated art.mul is much bigger than original?

Posted: Fri Aug 18, 2017 10:02 pm
by Yukiko
I posted the same problem some time ago in this post and did not get any response.

Re: Question to UOFiddler - generated art.mul is much bigger than original?

Posted: Sat Aug 19, 2017 12:22 pm
by OWHorus
Hello Yukiko,

I did not see your post, but you describe exactly the same problem. I am sure (did not yet try it) that the new (bigger) file will work. But it is unnecessary big, and this is a problem.

I could be the run length encoding (done for all item tiles, not for ground tiles). I looked into the code, but did not yet analyze it. There seems no way to switch modes, it is only one subroutine which writes art.mul and artidx.mul.

Maybe I can find in my archives an older version of UOFiddler to check if this was always this way.

Found the problem - in a way...

Posted: Sat Aug 19, 2017 1:33 pm
by OWHorus
Hello,

I looked into the SVN archive, and into my archive of old files. I found a version 4.4 of UOFiddler, and it saves with the smaller size. So problem solved - in a way, since it is an older version. I hope that this one function (replacing just the image for an art tile) does work!

I could not find any old source in my archive, but SVN has it, including comments:
It seems Turley changed this several times, around 2010 it was reworked for newer UO versions. I did not look yet at the differences in the art save routine.

For now I will use 4.4 fur just this task - and only for this task - and continue to use the newest version for all other tasks.

Hope this helps...

Re: Question to UOFiddler - generated art.mul is much bigger than original?

Posted: Sun Aug 20, 2017 12:29 pm
by Turley
Mmmh looks like I broke it in later changes ;)
Have you tested it with the latest git commit, we got a pull request which also fixes their in that context something.

Re: Question to UOFiddler - generated art.mul is much bigger than original?

Posted: Tue Aug 22, 2017 4:58 am
by OWHorus
Hello,

the only thing I can say is: WAH!

:)

I was not aware that UOFiddler also is on GIT. Just found it, after reading your post.

Will check it and report ASAP.

Thank you

OWHorus

Cannot build UOFiddler from GIT

Posted: Tue Aug 22, 2017 6:02 am
by OWHorus
Hello,

I just pulled the entire PolTools tree from GIT, and tried to build UOFiddler with VS 2013 (Visual C# 2013).

Opening the solution in UOFiddler and trying to build brought up two errors. One was for the certificate signing, and I switched this off. The error disappeared.

The build order seems to be correct (did not change it): Ultima, Controls, UOFiddler, Extensions. Ultima should depend on nothing, Controls depends on Ultima and UOFiddler on Ultima and Controls.

But every try to build ends with 'The name 'nameof' does not exist in the current context'.
For example for this line in BinaryExtensions.cs (from Ultima\BinaryExtensions.cs):
throw new ArgumentNullException(nameof(reader));

And
Metadata file '....\Ultima.dll' could not be found. (Argh - I am trying to build ultima.dll, why does it depend on it?)

Also building Ultima alone (from solution explorer, using the .csproj file there) fails with the same errors: It seems to miss Ultima.dll?

Can somebody tell me what I am doing wrong? Probably a small thing, but I have no ideas...

OWHorus

EDIT: Forget the question - found it: VS 2013 does not support C#6, and nameof is part of C#6.

Re: Question to UOFiddler - generated art.mul is much bigger than original?

Posted: Tue Aug 22, 2017 7:39 am
by Turley
Just download the latest visual studio community edition, no need to keep such an ancient version installed :p

Re: Question to UOFiddler - generated art.mul is much bigger than original?

Posted: Tue Aug 22, 2017 9:00 am
by Yukiko
Yes. With the latest VS Fiddler builds with no problems. I can't remember if the size issue is fixed. I haven't patched art.mul in a long time.

UOFiddler 4.7 from GIT compiles with VS2015 and seems to work now!

Posted: Tue Aug 22, 2017 2:11 pm
by OWHorus
Hello,

so - installed VS 2015. Not the community version, but from CD, cannot download 23 GB (minimum download for VS 2017 community according to M$!!) for this.

Except the hassle with 'signing' (create either test cert or switch it off) it built fine. I turned it off.

But the result seems peculiar at first: There were items missing int the item tab, and after a restart other items were missing...

Then I remembered the UOFiddlerArt.hash file: It helps, if one deletes this file, since 4.6 and 4.7 use the same folder (Appdata/Roaming/UOFiddler) and this seems to be the problem. If one has several versions of newer UOFiddler installed, it makes sense to give each its own folder somewhere. UOFiddler 4.4 uses its install folder, so there is no problem.

After solving this I saw all the items in the items tab, used the art files without my latest patches, and patched them (just 3 item pics). The result looks promising: It is a bit (about 3-4 MB) smaller than the original, artidx.mul has the same size as always.
I also tested the patched items and the rest in game and it seems to work.

So UOFiddler 4.7 seems to work now in this respect, and seems to work in all other tabs, but I did not try to change anything in other tabs.

Thank you for your help!

Horus