shadelessfox / decima Goto Github PK
View Code? Open in Web Editor NEWGUI application for viewing and editing resources found in games powered by Decima Engine
Home Page: https://discord.gg/Gt4gkMwadB
License: GNU General Public License v3.0
GUI application for viewing and editing resources found in games powered by Decima Engine
Home Page: https://discord.gg/Gt4gkMwadB
License: GNU General Public License v3.0
Currently, it's impossible to change what file or entry a reference points to.
When choosing what entry it points to, possible entries must be filtered to exclude ones whose type doesn't match the type of the reference.
For example, when editing the Ref<Resource>
, it can only point to entries that inherit from the Resource
type, e.g. Texture
, etc.
This is a continuation of #34
Im having this problem:
"Unrecognized option: --add-opens
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit."
I have the last version of JRE. Can someone help me?
A project resembles a game itself.
Every project contains information about a particular game: a path to the executable file, a path to the compressor library, etc.
This information should be exposed in the GUI for easy configuration.
Is it planned to support the export/import/replace of .stream files?
I'm still a noob on how hzd mods work, but I was watching this tutorial => https://youtu.be/_ti1L5UriKM?t=122
And it mentions the .stream files, they are not shown on the tree:
But if I search by name, I find it on the "unnamed" category:
It would be very useful to have the stream files together with their core files. As far as I understand the stream files have the actual data and the core files is just "metadata".
When inspecting raw bytes using an external hex editor, it's quite hard to map these bytes to the corresponding fields shown in Decima Explorer.
It will be useful to see a span (offset + length) of every field next to them.
This is a known issue with quite a tedious solution. We need to compute the size of the extra data.
When i make changes /ds/entities/gimmick/structure/construction_rshl.core i couldn't save changes! I got a lot of errors:
java.lang.IllegalStateException: Can't determine size of Java class
at com.shade.decima.model.rtti.registry.providers.JavaTypeProvider$JavaClass.getSize(JavaTypeProvider.java:121)
at com.shade.decima.model.base.CoreBinary.lambda$serialize$0(CoreBinary.java:61)
at java.base/java.util.stream.ReferencePipeline$4$1.accept(ReferencePipeline.java:214)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.IntPipeline.reduce(IntPipeline.java:515)
at java.base/java.util.stream.IntPipeline.sum(IntPipeline.java:473)
at com.shade.decima.model.base.CoreBinary.serialize(CoreBinary.java:61)
at com.shade.decima.ui.editor.core.CoreEditor.doSave(CoreEditor.java:266)
at com.shade.decima.ui.menu.menus.FileMenu$SaveItem.perform(FileMenu.java:108)
at com.shade.platform.ui.menus.impl.MenuManagerImpl.lambda$createMenuItem$1(MenuManagerImpl.java:244)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1028)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1072)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)
at java.desktop/java.awt.Component.processEvent(Component.java:6391)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Does this tool allow you to import textures? I have one extracted but the import button is grayed out. Is this not possible or am I just missing something?
As projects represent games, they rarely share the same RTTI information.
It causes problems when loading game A using RTTI information from game B.
I put the mod in Death Stranding Directors Cut\data
,but it doesn't work!
Some nodes may be expensive to load straight away during their construction.
An example would be an archive, which must load all its contained files.
It stopped working after 87688d4. We need to figure a better way of finding node by its associated file.
Attempting to follow the wiki instructions for Death Stranding leads to an exception when attempting to load the compressor library:
java.lang.IllegalStateException: java.lang.UnsatisfiedLinkError: Unable to load library '/home/sparr/.steam/steam/steamapps/common/DEATH STRANDING DIRECTORS CUT/oo2core_7_win64.dll':
/home/sparr/.steam/steam/steamapps/common/DEATH STRANDING DIRECTORS CUT/oo2core_7_win64.dll: invalid ELF header
/home/sparr/.steam/steam/steamapps/common/DEATH STRANDING DIRECTORS CUT/oo2core_7_win64.dll: invalid ELF header
Native library (home/sparr/.steam/steam/steamapps/common/DEATH STRANDING DIRECTORS CUT/oo2core_7_win64.dll) not found in resource path (/home/sparr/Downloads/decima/decima-0.1.12/lib/decima-0.1.12.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/decima-ui.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/platform-ui.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/decima-model.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/platform-model.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/logback-classic-1.4.4.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/gson-2.10.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/reflections-0.10.2.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/miglayout-swing-11.0.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/flatlaf-extras-2.6.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/flatlaf-2.6.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/jna-5.12.1.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/picocli-4.7.0.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/logback-core-1.4.4.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/slf4j-api-2.0.1.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/javassist-3.28.0-GA.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/jsr305-3.0.2.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/miglayout-core-11.0.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/svgSalamander-1.1.3.jar)
at com.shade.platform.ui.controls.tree.TreeModel$LoadingWorker.done(TreeModel.java:345)
at java.desktop/javax.swing.SwingWorker$5.run(SwingWorker.java:750)
at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:848)
at java.desktop/sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:858)
at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:311)
at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:243)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.UnsatisfiedLinkError: Unable to load library '/home/sparr/.steam/steam/steamapps/common/DEATH STRANDING DIRECTORS CUT/oo2core_7_win64.dll':
/home/sparr/.steam/steam/steamapps/common/DEATH STRANDING DIRECTORS CUT/oo2core_7_win64.dll: invalid ELF header
/home/sparr/.steam/steam/steamapps/common/DEATH STRANDING DIRECTORS CUT/oo2core_7_win64.dll: invalid ELF header
Native library (home/sparr/.steam/steam/steamapps/common/DEATH STRANDING DIRECTORS CUT/oo2core_7_win64.dll) not found in resource path (/home/sparr/Downloads/decima/decima-0.1.12/lib/decima-0.1.12.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/decima-ui.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/platform-ui.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/decima-model.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/platform-model.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/logback-classic-1.4.4.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/gson-2.10.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/reflections-0.10.2.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/miglayout-swing-11.0.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/flatlaf-extras-2.6.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/flatlaf-2.6.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/jna-5.12.1.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/picocli-4.7.0.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/logback-core-1.4.4.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/slf4j-api-2.0.1.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/javassist-3.28.0-GA.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/jsr305-3.0.2.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/miglayout-core-11.0.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/svgSalamander-1.1.3.jar)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:307)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:467)
at com.sun.jna.Library$Handler.<init>(Library.java:192)
at com.sun.jna.Native.load(Native.java:622)
at com.shade.decima.model.util.Compressor.<init>(Compressor.java:36)
at com.shade.decima.model.app.Project.<init>(Project.java:44)
at com.shade.decima.model.app.ProjectManagerImpl.openProject(ProjectManagerImpl.java:91)
at com.shade.decima.ui.navigator.impl.NavigatorProjectNode.open(NavigatorProjectNode.java:35)
at com.shade.decima.ui.navigator.impl.NavigatorProjectNode.loadChildren(NavigatorProjectNode.java:70)
at com.shade.decima.ui.navigator.impl.NavigatorProjectNode.loadChildren(NavigatorProjectNode.java:23)
at com.shade.platform.ui.controls.tree.TreeNodeLazy.getChildren(TreeNodeLazy.java:20)
at com.shade.platform.ui.controls.tree.TreeModel.getChildren(TreeModel.java:285)
at com.shade.platform.ui.controls.tree.TreeModel$LoadingWorker.doInBackground(TreeModel.java:322)
at com.shade.platform.ui.controls.tree.TreeModel$LoadingWorker.doInBackground(TreeModel.java:309)
at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1623)
Suppressed: java.lang.UnsatisfiedLinkError: /home/sparr/.steam/steam/steamapps/common/DEATH STRANDING DIRECTORS CUT/oo2core_7_win64.dll: invalid ELF header
at com.sun.jna.Native.open(Native Method)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:197)
... 19 more
Suppressed: java.lang.UnsatisfiedLinkError: /home/sparr/.steam/steam/steamapps/common/DEATH STRANDING DIRECTORS CUT/oo2core_7_win64.dll: invalid ELF header
at com.sun.jna.Native.open(Native Method)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:210)
... 19 more
Suppressed: java.io.IOException: Native library (home/sparr/.steam/steam/steamapps/common/DEATH STRANDING DIRECTORS CUT/oo2core_7_win64.dll) not found in resource path (/home/sparr/Downloads/decima/decima-0.1.12/lib/decima-0.1.12.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/decima-ui.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/platform-ui.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/decima-model.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/platform-model.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/logback-classic-1.4.4.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/gson-2.10.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/reflections-0.10.2.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/miglayout-swing-11.0.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/flatlaf-extras-2.6.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/flatlaf-2.6.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/jna-5.12.1.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/picocli-4.7.0.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/logback-core-1.4.4.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/slf4j-api-2.0.1.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/javassist-3.28.0-GA.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/jsr305-3.0.2.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/miglayout-core-11.0.jar:/home/sparr/Downloads/decima/decima-0.1.12/lib/svgSalamander-1.1.3.jar)
at com.sun.jna.Native.extractFromResourcePath(Native.java:1145)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:281)
... 19 more
There may be a way to get this working by loading the library through wine or proton. Or some of the functionality may be useful without the library?
As the title says, you can't do that.
When creating a new element, a dialog must be present with all possible types inherited from the contained type of that array.
For example, when having the Array<Resource>
, a user must choose from a set of types that inherit from the Resource
type, e.g. Texture
, LocalizedTextResource
, etc.
Some types besides RTTI data store extra data, which is read through the MsgReadBinary
message by the engine.
The API should be flexible to allow defining such routines even for dynamically created types.
I got this message:
Unrecognized option: --add-opens
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Sometimes it might be tedious when searching for a particular file among all archives.
Instead, we can merge everything from all archives and display it under the project node.
Depends on #15
DMF export is broken after 0.1.9 (last working release). I have bisect with git and found that export is broken since commit
c81ef53
~/Development/decima> git bisect reset bisect/bad
Vorherige Position von HEAD war e616f19 Core Editor: Add shortcut for "Inspect Value"
HEAD ist jetzt bei c81ef53 RTTI: Improve data source reading
~/Development/decima> gradlew build
BUILD SUCCESSFUL in 1s
9 actionable tasks: 7 executed, 2 up-to-date
~/Development/decima> tar -xf build/distributions/decima-0.1.9.tar
~/Development/decima> ./decima-0.1.9/bin/decima
20:28:45.470 [main] INFO org.reflections.Reflections - Reflections took 114 ms to scan 1 urls, producing 192 keys and 777 values
20:28:46.439 [SwingWorker-pool-1-thread-3] DEBUG com.shade.decima.model.rtti.registry.providers.ExternalTypeProvider - Found message handler for type 'DataBufferResource' that handles message 'MsgReadBinary'
20:28:46.444 [SwingWorker-pool-1-thread-3] DEBUG com.shade.decima.model.rtti.registry.providers.ExternalTypeProvider - Found message handler for type 'LocalizedTextResource' that handles message 'MsgReadBinary'
20:28:46.446 [SwingWorker-pool-1-thread-3] DEBUG com.shade.decima.model.rtti.registry.providers.ExternalTypeProvider - Found message handler for type 'PhysicsShapeResource' that handles message 'MsgReadBinary'
20:28:46.448 [SwingWorker-pool-1-thread-3] DEBUG com.shade.decima.model.rtti.registry.providers.ExternalTypeProvider - Found message handler for type 'WaveResource' that handles message 'MsgReadBinary'
20:28:46.449 [SwingWorker-pool-1-thread-3] DEBUG com.shade.decima.model.rtti.registry.providers.ExternalTypeProvider - Found message handler for type 'IndexArrayResource' that handles message 'MsgReadBinary'
20:28:46.450 [SwingWorker-pool-1-thread-3] DEBUG com.shade.decima.model.rtti.registry.providers.ExternalTypeProvider - Found message handler for type 'TextureList' that handles message 'MsgReadBinary'
20:28:46.451 [SwingWorker-pool-1-thread-3] DEBUG com.shade.decima.model.rtti.registry.providers.ExternalTypeProvider - Found message handler for type 'Texture' that handles message 'MsgReadBinary'
20:28:46.456 [SwingWorker-pool-1-thread-3] DEBUG com.shade.decima.model.rtti.registry.providers.ExternalTypeProvider - Found message handler for type 'VertexArrayResource' that handles message 'MsgReadBinary'
20:28:46.458 [SwingWorker-pool-1-thread-3] DEBUG com.shade.decima.model.rtti.registry.providers.ExternalTypeProvider - Found message handler for type 'UITexture' that handles message 'MsgReadBinary'
20:28:46.460 [SwingWorker-pool-1-thread-3] DEBUG com.shade.decima.model.rtti.registry.providers.ExternalTypeProvider - Found message handler for type 'Pose' that handles message 'MsgReadBinary'
20:28:46.930 [ForkJoinPool.commonPool-worker-1] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/DLC1_Arabic.bin'
20:28:46.938 [ForkJoinPool.commonPool-worker-3] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/DLC1_Italian.bin'
20:28:46.950 [ForkJoinPool.commonPool-worker-3] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/DLC1_German.bin'
20:28:46.961 [ForkJoinPool.commonPool-worker-3] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/DLC1_Russian.bin'
20:28:46.962 [ForkJoinPool.commonPool-worker-5] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Initial_LATAMSP.bin'
20:28:46.964 [ForkJoinPool.commonPool-worker-4] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Initial_German.bin'
20:28:46.971 [ForkJoinPool.commonPool-worker-3] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/DLC1_Polish.bin'
20:28:46.982 [ForkJoinPool.commonPool-worker-3] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/DLC1_Portugese.bin'
20:28:46.983 [ForkJoinPool.commonPool-worker-2] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Remainder_LATAMPOR.bin'
20:28:46.986 [ForkJoinPool.commonPool-worker-1] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Initial_English.bin'
20:28:46.992 [ForkJoinPool.commonPool-worker-5] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Initial_LATAMPOR.bin'
20:28:46.992 [ForkJoinPool.commonPool-worker-3] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/DLC1_French.bin'
20:28:47.003 [ForkJoinPool.commonPool-worker-3] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/DLC1_Spanish.bin'
20:28:47.013 [ForkJoinPool.commonPool-worker-3] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/DLC1_English.bin'
20:28:47.017 [ForkJoinPool.commonPool-worker-5] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Initial_Polish.bin'
20:28:47.017 [ForkJoinPool.commonPool-worker-4] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Initial_Portugese.bin'
20:28:47.047 [ForkJoinPool.commonPool-worker-2] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Remainder_LATAMSP.bin'
20:28:47.052 [ForkJoinPool.commonPool-worker-5] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Initial_Russian.bin'
20:28:47.054 [ForkJoinPool.commonPool-worker-2] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/FGRWin32.bin'
20:28:47.066 [ForkJoinPool.commonPool-worker-4] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Initial_Italian.bin'
20:28:47.087 [ForkJoinPool.commonPool-worker-5] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Remainder_French.bin'
20:28:47.103 [ForkJoinPool.commonPool-worker-4] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Initial_Spanish.bin'
20:28:47.110 [ForkJoinPool.commonPool-worker-5] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Remainder_Spanish.bin'
20:28:47.120 [ForkJoinPool.commonPool-worker-5] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Remainder_English.bin'
20:28:47.122 [ForkJoinPool.commonPool-worker-4] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Initial_French.bin'
20:28:47.124 [ForkJoinPool.commonPool-worker-4] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/DLC1_LATAMPOR.bin'
20:28:47.126 [ForkJoinPool.commonPool-worker-5] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Initial_Arabic.bin'
20:28:47.131 [ForkJoinPool.commonPool-worker-4] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/DLC1_LATAMSP.bin'
20:28:47.135 [ForkJoinPool.commonPool-worker-5] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Remainder_Portugese.bin'
20:28:47.141 [ForkJoinPool.commonPool-worker-5] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Remainder_Polish.bin'
20:28:47.145 [ForkJoinPool.commonPool-worker-4] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Remainder_Italian.bin'
20:28:47.154 [ForkJoinPool.commonPool-worker-5] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Remainder_Russian.bin'
20:28:47.155 [ForkJoinPool.commonPool-worker-4] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Remainder_German.bin'
20:28:47.164 [ForkJoinPool.commonPool-worker-5] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Remainder_Arabic.bin'
20:28:47.269 [ForkJoinPool.commonPool-worker-3] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/DLC1.bin'
20:28:47.281 [ForkJoinPool.commonPool-worker-2] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Patch.bin'
20:28:47.374 [ForkJoinPool.commonPool-worker-1] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Initial.bin'
20:28:47.459 [SwingWorker-pool-1-thread-3] INFO com.shade.decima.model.packfile.PackfileManager - Mounted '/data/SteamLibrary/steamapps/common/Horizon Zero Dawn/Packed_DX12/Remainder.bin'
20:29:03.861 [SwingWorker-pool-1-thread-3] INFO com.shade.decima.ui.data.viewer.model.DMFExporter - Exporting RegularSkinnedMeshResource
java.lang.RuntimeException: java.lang.IndexOutOfBoundsException
at com.shade.decima.ui.data.viewer.model.ModelViewerPanel.lambda$new$1(ModelViewerPanel.java:79)
at com.shade.platform.ui.dialogs.ProgressDialog$1.doInBackground(ProgressDialog.java:37)
at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IndexOutOfBoundsException
at java.base/java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:203)
at java.base/java.io.ByteArrayInputStream.transferTo(ByteArrayInputStream.java:208)
at com.shade.decima.ui.data.viewer.model.dmf.DMFInternalBuffer.serialize(DMFInternalBuffer.java:26)
at com.shade.decima.ui.data.viewer.model.DMFExporter$JsonBufferSerializer.serialize(DMFExporter.java:1515)
at com.shade.decima.ui.data.viewer.model.DMFExporter$JsonBufferSerializer.serialize(DMFExporter.java:1511)
at com.google.gson.internal.bind.TreeTypeAdapter.write(TreeTypeAdapter.java:88)
at com.google.gson.Gson.toJson(Gson.java:825)
at com.google.gson.Gson.toJsonTree(Gson.java:695)
at com.google.gson.Gson.toJsonTree(Gson.java:672)
at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.serialize(TreeTypeAdapter.java:172)
at com.shade.decima.ui.data.viewer.model.DMFExporter$JsonListSerializer.serialize(DMFExporter.java:1505)
at com.shade.decima.ui.data.viewer.model.DMFExporter$JsonListSerializer.serialize(DMFExporter.java:1497)
at com.google.gson.internal.bind.TreeTypeAdapter.write(TreeTypeAdapter.java:88)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:366)
at com.google.gson.Gson.toJson(Gson.java:825)
at com.shade.decima.ui.data.viewer.model.DMFExporter.export(DMFExporter.java:115)
at com.shade.decima.ui.data.viewer.model.ModelViewerPanel.export(ModelViewerPanel.java:145)
at com.shade.decima.ui.data.viewer.model.ModelViewerPanel.lambda$new$1(ModelViewerPanel.java:76)
... 7 more
20:29:08.457 [AWT-EventQueue-0] ERROR com.shade.decima.ui.Application - Unhandled exception
java.lang.RuntimeException: java.lang.IndexOutOfBoundsException
at com.shade.decima.ui.data.viewer.model.ModelViewerPanel.lambda$new$1(ModelViewerPanel.java:79)
at com.shade.platform.ui.dialogs.ProgressDialog$1.doInBackground(ProgressDialog.java:37)
at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IndexOutOfBoundsException: null
at java.base/java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:203)
at java.base/java.io.ByteArrayInputStream.transferTo(ByteArrayInputStream.java:208)
at com.shade.decima.ui.data.viewer.model.dmf.DMFInternalBuffer.serialize(DMFInternalBuffer.java:26)
at com.shade.decima.ui.data.viewer.model.DMFExporter$JsonBufferSerializer.serialize(DMFExporter.java:1515)
at com.shade.decima.ui.data.viewer.model.DMFExporter$JsonBufferSerializer.serialize(DMFExporter.java:1511)
at com.google.gson.internal.bind.TreeTypeAdapter.write(TreeTypeAdapter.java:88)
at com.google.gson.Gson.toJson(Gson.java:825)
at com.google.gson.Gson.toJsonTree(Gson.java:695)
at com.google.gson.Gson.toJsonTree(Gson.java:672)
at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.serialize(TreeTypeAdapter.java:172)
at com.shade.decima.ui.data.viewer.model.DMFExporter$JsonListSerializer.serialize(DMFExporter.java:1505)
at com.shade.decima.ui.data.viewer.model.DMFExporter$JsonListSerializer.serialize(DMFExporter.java:1497)
at com.google.gson.internal.bind.TreeTypeAdapter.write(TreeTypeAdapter.java:88)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:366)
at com.google.gson.Gson.toJson(Gson.java:825)
at com.shade.decima.ui.data.viewer.model.DMFExporter.export(DMFExporter.java:115)
at com.shade.decima.ui.data.viewer.model.ModelViewerPanel.export(ModelViewerPanel.java:145)
at com.shade.decima.ui.data.viewer.model.ModelViewerPanel.lambda$new$1(ModelViewerPanel.java:76)
... 7 common frames omitted
It's quite hard to find useful bits of information by blindly inspecting each core file one at a time.
It will be a lot faster to scan the entire packfile for a given sequence of bytes, words, dwords, and etc and then show core entries that contain these.
version: 0.1.18
jvm: 17.0.9
DEATH STRANDING DIRECTORS CUT
java.lang.IllegalArgumentException: Class 'UnknownEntry' has no field called 'EffectType'
java.lang.RuntimeException: java.lang.IllegalArgumentException: Class 'UnknownEntry' has no field called 'EffectType'
at com.shade.decima.ui.data.viewer.model.ModelExportDialog.lambda$buttonPressed$2(ModelExportDialog.java:132)
at com.shade.platform.ui.dialogs.ProgressDialog$1.doInBackground(ProgressDialog.java:47)
at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:842)
Caused by: java.lang.IllegalArgumentException: Class 'UnknownEntry' has no field called 'EffectType'
at com.shade.decima.model.rtti.RTTIClass.getField(RTTIClass.java:43)
at com.shade.decima.model.rtti.objects.RTTIObject.get(RTTIObject.java:21)
at com.shade.decima.model.rtti.objects.RTTIObject.str(RTTIObject.java:49)
at com.shade.decima.ui.data.viewer.model.dmf.DMFExporter.exportMaterial(DMFExporter.java:1244)
at com.shade.decima.ui.data.viewer.model.dmf.DMFExporter.exportDSMeshData(DMFExporter.java:1217)
at com.shade.decima.ui.data.viewer.model.dmf.DMFExporter.regularSkinnedMeshResourceToModel(DMFExporter.java:987)
at com.shade.decima.ui.data.viewer.model.dmf.DMFExporter.exportRegularSkinnedMeshResource(DMFExporter.java:443)
at com.shade.decima.ui.data.viewer.model.dmf.DMFExporter.exportResource(DMFExporter.java:130)
at com.shade.decima.ui.data.viewer.model.dmf.DMFExporter.export(DMFExporter.java:106)
at com.shade.decima.ui.data.viewer.model.dmf.DMFExporter.export(DMFExporter.java:93)
at com.shade.decima.ui.data.viewer.model.ModelExportDialog.lambda$buttonPressed$2(ModelExportDialog.java:127)
... 7 more
Unlike Death Stranding, in HZD, every RTTI resource has a human-readable name.
It would be handy, so let's show them in the GUI.
The purpose of this tool is not only to show data but also to allow modifying it.
An entire model for editors must be built to support such a feature.
We'll need to figure out a way of tracking our changes. There are some problems:
Also, we'll need to figure out a way of repacking data in the first place:
In some crazy scenarios, a packfile might contain invalid offsets and other values. It won't be evident until you try to open a file or two, then you will be welcomed with bizarre-looking errors:
Caused by: java.lang.ArrayIndexOutOfBoundsException: arraycopy: last source index 339058 out of bounds for byte[262144]
at java.base/java.lang.System.arraycopy(Native Method)
at com.shade.decima.model.packfile.Packfile$PackfileInputStream.read(Packfile.java:175)
at java.base/java.io.InputStream.read(InputStream.java:218)
at com.shade.decima.model.packfile.Packfile$PackfileInputStream.readAllBytes(Packfile.java:122)
at com.shade.decima.model.packfile.Packfile.extract(Packfile.java:51)
at com.shade.decima.ui.editor.binary.BinaryEditor$1.doInBackground(BinaryEditor.java:36)
at com.shade.decima.ui.editor.binary.BinaryEditor$1.doInBackground(BinaryEditor.java:32)
at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
We will need to:
Please add instructions for creating a new project. I'm able to add executable and Oodle library but am not sure what you mean by game packfile folder path? is that "\DEATH STRANDING DIRECTORS CUT\data"? Also what/where is the RTTl metadata path? I can't find any json in the install. I've also unpacked the entire game with decima without the json file.
DS uses MurmurHash3 of the original archive name, HZD uses human-readable archive names.
This causes problems when creating hash โ archive mappings:
There's no purpose in having such mappings. Archives must be referenced by their original name.
To provide human-readable names for DS, we could create an external file with mappings and use it from the UI part only.
Decima Engine uses RTTI
that represents type information at runtime. There are hundreds of different objects for which we don't want to write wrappers. Instead, we can use RTTI
information to reconstruct object hierarchy for reading, writing, pretty-printing, and displaying these objects.
But we should be aware of internal objects that are not exposed via RTTI
.
We need to keep state, such as expanded nodes, selection, and decorations, between restarts
This tool is coming along nicely, yet I cannot seem to get the game to load after repacking even just one BIN file.
From what I understand, Death Stranding will not load any BIN files other than the default ones it comes with it and so it is needed to repack and not create a new independant BIN file.
Is there a specific repack method that needs to be done to keep it the same as the original BIN? Maybe possible there is a method to get DS to load other BINs and I'm just totally missing it.
The tool "Decima Explorer" seems to do alright for repacking, but gives no export options so not sure what should be selected when saving from this tool.
I've tried pretty minor edits to core file values and have confirmed the Decima-edited exported core file can repack fine in Decima Explorer, just not in this tool.
I'm currently using ds_paths.txt.gz as there is not a different one for dsdc- not sure if that is correct.
Thank you!
Core files often contain a bunch of entries of the same type and are not sorted according to their type.
This makes searching for something particularly hard.
Currently, we assume that both games refer to GameType#DS
.
This breaks support for an ongoing mesh exporter that expects specific fields to exist, but they don't.
Acceptance criteria:
GameType#DSDC
Currently, every unhandled exception is shown only in the console.
Running the application standalone or with the obstructed console, it would be unclear why a particular behavior does not happen.
By showing a popup with the error, it would make clear that something went wrong.
After opening a lot of editors and restarting the application, it will attempt to load them all and will do it indefinitely.
Ideally, it should initialize the active editor only.
This problem needs a research. Can be solved by decreasing the amount of opened editors.
I'm trying to get into modding Horizon Zero Dawn and come across this application. If there is a comprehensive guide for it, that would also be appreciated. When creating a new project, the program asks for following information:
Compressor library asks for a .so
file and type information asks for a .json
file. Tried searching for these file extensions in my game directory but couldn't find anything.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.