Jump to content

A solution to non-permissive mods?


Asrienda

Recommended Posts

The thing i find personally sad and frustrating is that there are some amazing loverslab mods in Oldrim that wont be ported/converted to Skyrim SE because a) the active Mod author strictly wont port it and wont allow anyone else to port it ( which is 100% their right and i fully respect that ) and also a few mods that are being updated so actively and regularly that any port of that mod would be almost instantly outdated as a new version got released and any skilled converter/porter would just get so fed up constantly updating it and keeping up lmao.

Link to comment
13 hours ago, sophiextime said:

The thing i find personally sad and frustrating is that there are some amazing loverslab mods in Oldrim that wont be ported/converted to Skyrim SE because a) the active Mod author strictly wont port it and wont allow anyone else to port it ( which is 100% their right and i fully respect that ) and also a few mods that are being updated so actively and regularly that any port of that mod would be almost instantly outdated as a new version got released and any skilled converter/porter would just get so fed up constantly updating it and keeping up lmao.

In the case of those being update so quickly anybody doing the conversion, should just state at the front page of the post/page dealing with it that it will only be converted once per month say and that would be on a certain date and they would use the most up to date on at that point, and then not do the conversion again till the same date on the next month, not optimal but better than no conversions, and when you get down to it there are not that many mods being updated that often any more.

Link to comment

Well here's version 0.0.1 for testing.

 

It doesn't work all that great with files compressed across the entire file, like .exe, .jpg, and .png. So for SSE, SkyrimSE.exe is about 34mb,  but the patch will be about 44mb.

 

It works well with .bmp, .txt, .xml, and others where changes don't cause a ripple effect across an entire file.

 

It works ok with .zip files, as changes sometimes can cause a large effect across the file, but not always.

 

But things that aren't a .exe (or probably .dll) will be smaller. And while that's unfortunate, it still accomplishes the goal of modifying file A in an automated fashion while respecting owner copyright.

 

Requires Java 1.8 or later:

jPatcher.jar

 

 

Changes for the future:

Include the source code (was lazy this time)

Consider changing the patch format slightly to allow better .exe compression (but this is a single use case, not sure if it's worth the effort)

Completely disallow 2GB+ patch creation.. right now the program just freezes, but I need to figure out the actual limit before it freezes

Include a message while creating a patch, not just a gray screen

Link to comment

It patches at the byte level, so it can patch anything.

 

It's actually designed as general use; you input the original file and the modified file, and it outputs a patch file. Then the user uses the program, the original file, and patch file, and gets the modified version.

 

One use case idea I had was to create patches so someone could downgrade from, say, 1.5.53 to 1.5.50 without a bunch of hassle, but the algorithm I'm using for creating a diff is pretty bad for .exe files due to compression across most of the file that means small changes effect the entire file.

 

The whole reason to make it was gone over ad nauseum in the thread.

 

Technical details on how: it uses Myers' O(ND) algorithm across multiple cpu threads to create a diff (difference) file. That file is the changes between two files by chunks, in this case 64 byte chunks. The diff is included in the patch json (via base64 encoding) along with the original file sha-256 hash and some other metadata (original file author and where to find the original file, patch description, etc). The .json is then gzipped to reduce the size, hence the patch filename .gzj. For patch users, the process is quick. It does take about 1 second per MB of the original file to create a patch though.

Link to comment

I have the IQ of a shoe.   So I would need an idjits guide in order to test this...  like...

Put the banana here.   Press the red button.   Now your banana is an orange.  Put the orange in the fruit bowl.

 

ETA:  well to expand on where I am confused...  if I have a start file... and an end file...  why do I need to run the patcher? 

 

"you input the original file and the modified file, "

 

Am I just duplicating the start file and then using one duplicate as the end file?

Link to comment

Was anyone else having trouble getting on LL earlier today?

 

 

Anyway, the idea isn't for a person to create a patch for their own use.

 

Say we have a mod author that makes a mod for LE but doesn't put any permissions whatsoever and vanishes. We can get someone to convert it to SE, then post just the patch file.

 

Then users would download the original and the patch to easily create the final product, the SE-compatible version. This wouldn't violate the original mod author's rights and it would save every single person wanting to use it on SE from making a bethesda account, installing the CK, converting the animations, converting the models, etc. 

Link to comment
On 10/7/2018 at 5:32 PM, Asrienda said:

Well here's version 0.0.1 for testing.

 

It doesn't work all that great with files compressed across the entire file, like .exe, .jpg, and .png. So for SSE, SkyrimSE.exe is about 34mb,  but the patch will be about 44mb.

 

It works well with .bmp, .txt, .xml, and others where changes don't cause a ripple effect across an entire file.

 

It works ok with .zip files, as changes sometimes can cause a large effect across the file, but not always.

 

But things that aren't a .exe (or probably .dll) will be smaller. And while that's unfortunate, it still accomplishes the goal of modifying file A in an automated fashion while respecting owner copyright.

 

Requires Java 1.8 or later:

jPatcher.jar

 

 

Changes for the future:

Include the source code (was lazy this time)

Consider changing the patch format slightly to allow better .exe compression (but this is a single use case, not sure if it's worth the effort)

Completely disallow 2GB+ patch creation.. right now the program just freezes, but I need to figure out the actual limit before it freezes

Include a message while creating a patch, not just a gray screen

 

I hereby don't give you permission to convert these mods and upload them to LL, if you know what I mean lol

maybe fix some bugs too

Link to comment
On 10/8/2018 at 6:55 PM, Asrienda said:

Technical details on how: it uses Myers' O(ND) algorithm across multiple cpu threads to create a diff (difference) file. That file is the changes between two files by chunks, in this case 64 byte chunks. The diff is included in the patch json (via base64 encoding) along with the original file sha-256 hash and some other metadata (original file author and where to find the original file, patch description, etc). The .json is then gzipped to reduce the size, hence the patch filename .gzj. For patch users, the process is quick. It does take about 1 second per MB of the original file to create a patch though.

Sorry for late reply but you didn't quote me so I didn't get notification. Since you mentioned dll, I'm not sure what exactly would it update for dll based plugins? Updated versions can be quite different, have different addresses, can be compiled with different tools. Also the ones that have source code available are usually free to port, if someone managed to update them (from source code), theres no need for patcher?

 

If I was you I would just focus on .esp format. These plugins are least problematic and such patches could be created by anyone.

Link to comment
  • 3 weeks later...
  • 2 weeks later...

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use