Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hi from GoMule! #13

Open
silospen opened this issue Sep 30, 2021 · 16 comments
Open

Hi from GoMule! #13

silospen opened this issue Sep 30, 2021 · 16 comments

Comments

@silospen
Copy link

Hey, just wanted to say hi and let you know that I've been working on D2R support over at Sourceforge https://sourceforge.net/p/gomule/git/ci/d2rSupport/tree/

@pairofdocs
Copy link
Owner

pairofdocs commented Sep 30, 2021

Hey @silospen,

Ohh! nice!
I will look at your repo.

Most of the classes and functions that you have I've kept. There is this additional class that I added for a shared stash here
#14 (WIP on the shared stash)

@AcetateBarrel
Copy link

I downloaded the official gomule version from silopen to see what the differences are but it seems you guys use different file types for the atma stashes, cant load them.

@pairofdocs
Copy link
Owner

pairofdocs commented Oct 6, 2021

Yea there might be some difference there (but maybe just file extension, not structure of the stash itself)

@AcetateBarrel if you change the stash filename to .d2x will it work in gomule-official ?

The .d2i stashes created in this gomule-d2r are Atma structure
but the file name extension for Atma stashes is actually .d2x for LoD

@silospen
Copy link
Author

silospen commented Oct 6, 2021

I updated the D2X format to be inline with the D2R savefiles, so there's:

  • A version bump to keep it in sync with d2s files (97 vs 96)
  • JM flags between items have been removed (so no JMs at all)

I was planning to put together a PR on here https://github.com/pairofdocs/atma-stash-d2r for another converter from your d2i/d2x to my d2x later this week.

@georgwacker
Copy link

I updated the D2X format to be inline with the D2R savefiles, so there's:

  • A version bump to keep it in sync with d2s files (97 vs 96)
  • JM flags between items have been removed (so no JMs at all)

I was planning to put together a PR on here https://github.com/pairofdocs/atma-stash-d2r for another converter from your d2i/d2x to my d2x later this week.

Cheers for the update! The d2x stashes I made with R0.3 currently throw an error in R4.4.8, do I have to update them manually?

@pairofdocs
Copy link
Owner

pairofdocs commented Oct 7, 2021

@silospen
ohh I see 👍

I have .d2i as JM, numItems, Itemlist(no JM separators)
(I chose that since the D2R shared stashes .d2i from the Alpha were just this simple item list)

image


and .d2x format has D2X, numItems, version, checksum, JM, Itemlist (with JM separators for LoD and no sep. for D2R)

image

so my .d2i file can't be used like I thought, I'm missing the D2X characters, the version (97 like you said for D2R) and the checksum

@pairofdocs
Copy link
Owner

We could do something like this conversion system which has the 'starting point' of .d2x version 96

(.d2x version 96 ) < -- > (.d2i gomule-d2r) is already set up

so all that's missing is
(.d2x version 96 LoD) -- > (.d2x version 97 LoD)

and we can skip the (.d2i gomule-d2r) -- > (.d2x version 97 LoD) converter
since the 'undo D2R' step is covered by (.d2i) --> (.d2x version 96)

@georgwacker
Copy link

and .d2x format has D2X, numItems, version, checksum, JM, Itemlist (with JM separators for LoD and no sep. for D2R)

It looks like the d2x version 97 from @silospen has the following header now:

D2X, numItems, version, checksum, Itemlist (with no JM separation) (so no initial JM as well)

I tried to modify the atma-converter today, for the d2x 96->97 conversion, just reading the item data byte-wise and skipping any JM's... I'm still debugging.

Perhaps GoMule could convert the 96 stashes automatically?

@pairofdocs
Copy link
Owner

pairofdocs commented Oct 11, 2021

and .d2x format has D2X, numItems, version, checksum, JM, Itemlist (with JM separators for LoD and no sep. for D2R)

It looks like the d2x version 97 from @silospen has the following header now:

D2X, numItems, version, checksum, Itemlist (with no JM separation) (so no initial JM as well)

I tried to modify the atma-converter today, for the d2x 96->97 conversion, just reading the item data byte-wise and skipping any JM's... I'm still debugging.

Perhaps GoMule could convert the 96 stashes automatically?

I'll take a look this week too.

My idea was to use the atma-converter javascript code https://github.com/pairofdocs/atma-stash-d2r/blob/master/index.html#L280-L285

and just change what's written to the header ( D2X, numItems, version, checksum, Itemlist (with no JM separation) (so no initial JM as well) like you wrote above)

And i'll have a separate .html page for this atma 96 --> atma 97 converter so the 1st index.html page doesn't become spaghetti messy

Edit: https://github.com/pairofdocs/atma-stash-d2r/blob/master/index.html#L307-L313

the header for the destination bytes (dst) should be something like

    numItems = src.read16();
    // write D2X, itemcount, version 97, 00 00 00 00 for checksum
    dst.write8(0x44);
    dst.write16(0x5832);
    dst.write16(numItems);
    dst.write16(97);
    dst.write32(0x00000000); // fill in checksum after dst is populated

then parseItemList() is called

@pairofdocs
Copy link
Owner

An update on the Atma .d2x v96 to v97 (D2R) converter

I added a separate page for the .d2x <---> .d2x converter here
https://pairofdocs.github.io/atma-stash-d2r/convert96to97.html

Testing with a stash (.d2x LoD --> .d2x D2R) worked https://imgur.com/a/as0Qbay

@AcetateBarrel
Copy link

AcetateBarrel commented Oct 14, 2021

Just tried the converter for d2i>d2x and got this as error

Error

Stash Version Incorrect!
at gomule.d2x.D2Stash.readAtmaItems(D2Stash.java:153)
at gomule.d2x.D2Stash.(D2Stash.java:78)
at gomule.gui.D2FileManager.addItemList(D2FileManager.java:1597)
at gomule.gui.D2ViewStash.connect(D2ViewStash.java:352)
at gomule.gui.D2ViewStash.(D2ViewStash.java:286)
at gomule.gui.D2FileManager.openStash(D2FileManager.java:1508)
at gomule.gui.D2FileManager.handleStash(D2FileManager.java:1484)
at gomule.gui.D2FileManager.openStash(D2FileManager.java:1446)
at gomule.gui.D2FileManager$26.actionPerformed(D2FileManager.java:901)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

@AcetateBarrel
Copy link

does anyone know what causing the error for me? Thanks

@pairofdocs
Copy link
Owner

Share your stash, we can take a look

Which converter page did you use?

@AcetateBarrel
Copy link

AcetateBarrel commented Oct 21, 2021

Here's the link
Link

here's my original stash and the one I converted.
Stashes

@silospen
Copy link
Author

I think you need to use https://pairofdocs.github.io/atma-stash-d2r/convert96to97.html to convert to the latest version and then hit 'Download Atma version 97 LoD .d2x stash'. Let me know how that goes?

@AcetateBarrel
Copy link

Just tested a few and they seem to be all good now. I did D2i>D2x then 96>97. I'll update them all tomorrow and let you know if I have any problems. Thanks for the help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants