TES5Edit / TES5Edit

xEdit by Elminster; Updated and maintained by Sharlikran, Zilav, and Hlp
Mozilla Public License 2.0
737 stars 140 forks source link

more of a feature request to support Backported Extended ESL Support #1288

Open crichmon opened 7 months ago

crichmon commented 7 months ago

What is the version of xEdit you are using? 4.04.

Describe the bug nothing is wrong.

But the advent of the Backported Extended ESL Support

there is the possibility that if implemented in xEdit, that xEdit might be able to compact more plugins (because there are now 4096 ESPFE formids available instead of 2048) and xEdit will be able to find more plugins (an update to one of the ESP to ESL xEdit scripts).

To reproduce N/A

Expected behavior more plugins can be compacted and made light.

Screenshots N/A

Additional context thank you for reading.

robertgk2017 commented 7 months ago

xEdit already supports the lower form id range. Please update to the current version 4.1.5b

crichmon commented 7 months ago

okay, I installed the version you specified, but xEdit returns an error when attempting to load my load order:

Application started Time: [7621421] 2024-02-05 15:19:03.751 ExceptionInfo: $0000002CB35FDF10 ExceptionRecord: $0000002CB35FE6B0 ExceptionCode: $C0000005 = EXCEPTION_ACCESS_VIOLATION - The thread tried to read from or write to a virtual address for which it does not have the appropriate access. ExceptionFlags: $00000000 ExceptionRecord: $0000000000000000 ExceptionAddress: $0000000000C7AC68 ExceptionInformation[0]: $0000000000000000 ExceptionInformation[1]: $0000000000000000 ContextRecord: ContextFlags: $0010005F Dr0: $0000000000000000 Dr1: $0000000000000000 Dr2: $0000000000000000 Dr3: $0000000000000000 Dr6: $0000000000000000 Dr7: $0000000000000000 SegGs: $002B SegFs: $0053 SegEs: $002B SegDs: $002B Rax: $0000000000000000 Rbx: $0000000000C2B968 Rcx: $0000000000000000 Rdx: $0000002CB35FEF68 Rsi: $0000000000000003 Rdi: $0000002CB35FF958 R8: $4415D30790199CB9 R9: $0000000000C95981 R10: $0000000000000002 R11: $40782261405C85E0 R12: $0000000000000000 R13: $0000000000000000 R14: $0000000000000000 R15: $0000000000000000 Rbp: $0000002CB35FEF10 Rip: $0000000000C7AC68 SegCs: $0033 EFlags: $00010246 Rsp: $0000002CB35FEF10 SegSs: $002B Exception: nil! Filesize: 36123648 Filedate: 2023-11-04 00:54:42 Computer: PC-DESKTOP-CNR User: crich ThreadID: 33388 ProcessID: 3088 Version: SSEEdit 4.1.5 EXPERIMENTAL x64

Callstack (Frames): [0000000000C7AC68] wbImplementation.TwbMainRecord.SetChildGroup (Line 12678, "wbImplementation.pas") [0000000000261453] nxExceptionHook.VectoredHandler (Line 251, "nxExceptionHook.pas") [00007FFFE1FC7A8A] Unknown function at RtlGetLengthWithoutLastFullDosOrNtPathElement [00007FFFE1F6E242] Unknown function at RtlFindCharInUnicodeString [00007FFFE1FF340E] KiUserExceptionDispatcher [0000000000C7AC68] wbImplementation.TwbMainRecord.SetChildGroup (Line 12678, "wbImplementation.pas") [0000000000C957BB] wbImplementation.TwbGroupRecord.BuildRef (Line 16164, "wbImplementation.pas") [0000000000C50E62] wbImplementation.TwbContainer.BuildRef (Line 6146, "wbImplementation.pas") [0000000000C95671] wbImplementation.TwbGroupRecord.BuildRef (Line 16160, "wbImplementation.pas") [0000000000C50E62] wbImplementation.TwbContainer.BuildRef (Line 6146, "wbImplementation.pas") [0000000000C375FC] wbImplementation.TwbFile.BuildOrLoadRef (Line 2615, "wbImplementation.pas") [00000000018A2B53] xeMainForm.TLoaderThread.Execute$ActRec.$0$Body (Line 20885, "xeMainForm.pas") [0000000000BCD510] System.Threading.TParallel.ForWorker$ActRec.$0$Body (Line 1397, "System.Threading.pas") [0000000000BD0586] System.Threading.TTask.ExecuteReplicates$ActRec.$0$Body (Line 2207, "System.Threading.pas") [0000000000BD0173] System.Threading.TTask.Execute (Line 2182, "System.Threading.pas") [0000000000BD1A44] System.Threading.TTask.InternalExecute (Line 2561, "System.Threading.pas") [0000000000BD1B6F] System.Threading.TTask.InternalWork (Line 2587, "System.Threading.pas") [0000000000BD076C] System.Threading.TTask.ExecuteWork (Line 2223, "System.Threading.pas") [0000000000BD7A67] System.Threading.TThreadPool.TQueueWorkerThread.ExecuteWorkItem (Line 3577, "System.Threading.pas") [0000000000BD74BD] System.Threading.TThreadPool.TQueueWorkerThread.Execute (Line 3503, "System.Threading.pas") [00000000001B19E3] System.Classes.ThreadProc (Line 15845, "System.Classes.pas") [000000000008227D] System.ThreadWrapper (Line 25726, "System.pas") [00007FFFE176257D] BaseThreadInitThunk [00007FFFE1FAAA58] RtlUserThreadStart

Callstack (Raw): [0000000000C7AC68] wbImplementation.TwbMainRecord.SetChildGroup (Line 12678, "wbImplementation.pas") [000000000026149B] nxExceptionHook.VectoredHandler (Line 253, "nxExceptionHook.pas") [00007FFFE1FC7A8A] Unknown function at RtlGetLengthWithoutLastFullDosOrNtPathElement [00007FFFE1F6E242] Unknown function at RtlFindCharInUnicodeString [00007FFFE1FF340E] KiUserExceptionDispatcher [0000000000C7AC68] wbImplementation.TwbMainRecord.SetChildGroup (Line 12678, "wbImplementation.pas") [0000000000C957BB] wbImplementation.TwbGroupRecord.BuildRef (Line 16164, "wbImplementation.pas") [0000000000C50E62] wbImplementation.TwbContainer.BuildRef (Line 6146, "wbImplementation.pas") [0000000000C95671] wbImplementation.TwbGroupRecord.BuildRef (Line 16160, "wbImplementation.pas") [0000000000C50E62] wbImplementation.TwbContainer.BuildRef (Line 6146, "wbImplementation.pas") [0000000000C375FC] wbImplementation.TwbFile.BuildOrLoadRef (Line 2615, "wbImplementation.pas") [00000000018A2B53] xeMainForm.TLoaderThread.Execute$ActRec.$0$Body (Line 20885, "xeMainForm.pas") [0000000000BCD510] System.Threading.TParallel.ForWorker$ActRec.$0$Body (Line 1397, "System.Threading.pas") [0000000000BD0586] System.Threading.TTask.ExecuteReplicates$ActRec.$0$Body (Line 2207, "System.Threading.pas") [0000000000BD0173] System.Threading.TTask.Execute (Line 2182, "System.Threading.pas") [0000000000BD1A44] System.Threading.TTask.InternalExecute (Line 2561, "System.Threading.pas") [0000000000BD1B6F] System.Threading.TTask.InternalWork (Line 2587, "System.Threading.pas") [0000000000BD076C] System.Threading.TTask.ExecuteWork (Line 2223, "System.Threading.pas") [0000000000BD7A67] System.Threading.TThreadPool.TQueueWorkerThread.ExecuteWorkItem (Line 3577, "System.Threading.pas") [0000000000BD74BD] System.Threading.TThreadPool.TQueueWorkerThread.Execute (Line 3503, "System.Threading.pas") [00000000001B19E3] System.Classes.ThreadProc (Line 15845, "System.Classes.pas") [000000000008227D] System.ThreadWrapper (Line 25726, "System.pas") [00007FFFE176257D] BaseThreadInitThunk [00007FFFE1FAAA58] RtlUserThreadStart

Time: [7621453] 2024-02-05 15:19:03.779 ExceptionInfo: nil Exception: EAccessViolation Message: Access violation at address 0000000000C7AC68 in module 'TESxEdit64.exe'. Read of address 0000000000000000 Filesize: 36123648 Filedate: 2023-11-04 00:54:42 Computer: PC-DESKTOP-CNR User: crich ThreadID: 33388 ProcessID: 3088 Version: SSEEdit 4.1.5 EXPERIMENTAL x64

Callstack (Frames): [0000000000C7AC68] wbImplementation.TwbMainRecord.SetChildGroup (Line 12678, "wbImplementation.pas") [00000000002490A8] JclDebug.JclCreateStackList (Line 5351, "JclDebug.pas") [0000000000249016] JclDebug.DoExceptionStackTrace (Line 5292, "JclDebug.pas") [000000000024B5A7] JclDebug.DoExceptNotify (Line 6741, "JclDebug.pas") [000000000023BEB5] JclHookExcept.TNotifierItem.DoNotify (Line 272, "JclHookExcept.pas") [000000000023C163] JclHookExcept.DoExceptNotify (Line 347, "JclHookExcept.pas") [000000000023C2B7] JclHookExcept.HookedExceptObjProc (Line 395, "JclHookExcept.pas") [0000000000080E07] System.@DelphiExceptionHandler (Line 21118, "System.pas") [00007FFFE1FF441F] Unknown function at __chkstk [00007FFFE1F6E466] Unknown function at RtlFindCharInUnicodeString [00007FFFE1FF340E] KiUserExceptionDispatcher [0000000000C7AC68] wbImplementation.TwbMainRecord.SetChildGroup (Line 12678, "wbImplementation.pas") [0000000000C957BB] wbImplementation.TwbGroupRecord.BuildRef (Line 16164, "wbImplementation.pas") [0000000000C50E62] wbImplementation.TwbContainer.BuildRef (Line 6146, "wbImplementation.pas") [0000000000C95671] wbImplementation.TwbGroupRecord.BuildRef (Line 16160, "wbImplementation.pas") [0000000000C50E62] wbImplementation.TwbContainer.BuildRef (Line 6146, "wbImplementation.pas") [0000000000C375FC] wbImplementation.TwbFile.BuildOrLoadRef (Line 2615, "wbImplementation.pas") [00000000018A2B53] xeMainForm.TLoaderThread.Execute$ActRec.$0$Body (Line 20885, "xeMainForm.pas") [0000000000BCD510] System.Threading.TParallel.ForWorker$ActRec.$0$Body (Line 1397, "System.Threading.pas") [0000000000BD0586] System.Threading.TTask.ExecuteReplicates$ActRec.$0$Body (Line 2207, "System.Threading.pas") [0000000000BD0173] System.Threading.TTask.Execute (Line 2182, "System.Threading.pas") [0000000000BD1A44] System.Threading.TTask.InternalExecute (Line 2561, "System.Threading.pas") [0000000000BD1B6F] System.Threading.TTask.InternalWork (Line 2587, "System.Threading.pas") [0000000000BD076C] System.Threading.TTask.ExecuteWork (Line 2223, "System.Threading.pas") [0000000000BD7A67] System.Threading.TThreadPool.TQueueWorkerThread.ExecuteWorkItem (Line 3577, "System.Threading.pas") [0000000000BD74BD] System.Threading.TThreadPool.TQueueWorkerThread.Execute (Line 3503, "System.Threading.pas") [00000000001B19E3] System.Classes.ThreadProc (Line 15845, "System.Classes.pas") [000000000008227D] System.ThreadWrapper (Line 25726, "System.pas") [00007FFFE176257D] BaseThreadInitThunk [00007FFFE1FAAA58] RtlUserThreadStart

robertgk2017 commented 7 months ago

Your log shows you installed 4.1.5 not 4.1.5b

4.1.5 is not 4.1.5b.

jbostrus commented 7 months ago

That log shows you using 4.1.5 not 4.1.5b. You can only get the b release from Discord in the #xedit-builds channel. Also for any plugins you wish to use the extended range, the HEDR version needs to be 1.71.

crichmon commented 7 months ago

thank you, gentlemen.

crichmon commented 7 months ago

quick question: I've installed version 4.1.5b, I adjust the "Find plugins which could be turned into ESL" to accept records up to f00 instead of 700. I find a particular plugin matches that requirements; I edit the HEDR of the plugin to 1.710000 (xEdit seems to add several zeroes), save the plugin, then attempt to compact form ids, but xEdit says there are too many form ids.

I guess I'm wondering where in xEdit 4.1.5b is the option to compact form ids for the HEDR 1.71 version of plugins?

robertgk2017 commented 7 months ago

compacting 1.71 plugins works just fine for more than 2048 new records. You probably have to save and restart xEdit after setting the hedr to 1.71. This issue can probably be closed.

jbostrus commented 6 months ago

If the HEDR is changed after loading xEdit there are special things that have to happen for it to realize the range has changed, and to use the new range or not. As the list is lengthy with lots of special cases, the simplest thing is to close xEdit and save the plugin and reload. Upon reload the compact function will utilize the now appropriate range of IDs. If the plugin has IDs that are out of the valid range then it will renumber them.

Word of caution if you go from 1.71 to 1.70. That will make all your low IDs hard coded overrides and make it difficult to renumber up out of the lower range.

ElminsterAU commented 6 months ago

There is not, and will not be, any support for changing the HEDR version without restarting xEdit. If the HEDR version is being changed, the only valid next step is to close xEdit.

crichmon commented 6 months ago

thank you again, gentlemen.