Code Monkey home page Code Monkey logo

Comments (10)

Pwntheon avatar Pwntheon commented on September 28, 2024 1

Hi. Thanks for working on this project. Here's an example stash.

Default.zip

from gomule-d2r.

pairofdocs avatar pairofdocs commented on September 28, 2024

Item encoding has changed in D2R, you're right.

a .d2x file has to be converted to D2R for gomule-d2r to read it. There is a tool to convert D2 LoD save files to D2R save files which does the item conversion.

https://github.com/d07RiV/d07riv.github.io/blob/master/d2r.html#L262 from the converter page https://d07riv.github.io/d2r.html

That function can be used to convert a .d2x to a .d2i file

Do you have a sample .d2x file? I can take a look over the weekend
(you can zip the file and drag-and-drop it as an attachment to a comment here)

from gomule-d2r.

pairofdocs avatar pairofdocs commented on September 28, 2024

@Pwntheon do you have an example stash with some items?

default.d2x has the header, item count (0), file version and a checksum but no items
image

from gomule-d2r.

pairofdocs avatar pairofdocs commented on September 28, 2024

In progress converter here: https://pairofdocs.github.io/atma-stash-d2r/

I'm still testing. I was able to open an example stash with 1 item (.d2x converted to .d2i) and open it in gomule

from gomule-d2r.

semenzaharov avatar semenzaharov commented on September 28, 2024

@pairofdocs Is there any chance that you implement backwards convertion (from .d2i to d2x)? And is there any converter from d2r to d2 save file (want to play tcp/ip in old version)?
Here is stash for debug (converter did not work for this one)

stash.zip

from gomule-d2r.

pairofdocs avatar pairofdocs commented on September 28, 2024

@semenzaharov I'll look into that conversion after debugging the .d2x -> .d2i one

Thanks for the file 👍

I was reading the binary data from it and saw 6673 items in the header, but when going through the item list I only saw 6672 items and the code failed on the last one. Do you know how many total items there are in that stash file? Does Atma or Gomule-LoD show that?

This will convert D2R to LoD https://d07riv.github.io/d2r.html

from gomule-d2r.

pairofdocs avatar pairofdocs commented on September 28, 2024

@semenzaharov I couldnt find the issue with the stash MainStash.d2x, there is some item that's not being converted right by Riv's converter or something else

I was able to get a part of the stash to convert correctly and show up in Gomule-d2r

I took the first 1982 items from the stash to test. Here is the .d2x and the .d2i stashes zipped
MainStash-1982.zip

from gomule-d2r.

semenzaharov avatar semenzaharov commented on September 28, 2024

@pairofdocs it shows 6673 in old gomule. It seems that 2 A Jade Figurine cause the problem (you don't have them in your MainStash-1982.zip) - I tried to split main stash into smaller ones and only they won't convert.
But, after removing them from MainStash and conversion, GoMuleR just freezes on opening stash (with 6671 items).

from gomule-d2r.

pairofdocs avatar pairofdocs commented on September 28, 2024

@semenzaharov

How big were the splits that you tried?

Smaller stashes seem to have more success for converting (maybe there is a out-of-memory issue with converting in the browser. And a separate issue with some item/items as well).
There was a post here that had a 5k stash but after moving out all the runes, charms, gems, runewords, and crafted items - leaving it at 2k items roughly was able to convert.

I selected a random middle section of the main stash and had ~1.8k items convert correctly. random_sel_1k.zip

It's hard to track down exactly what the problem is. I'm just using Riv's conversion functions and am not familiar with them. We would need Riv the original author of the converter script to debug this more carefully. https://github.com/d07RiV/d07riv.github.io

from gomule-d2r.

pairofdocs avatar pairofdocs commented on September 28, 2024

@pairofdocs Is there any chance that you implement backwards convertion (from .d2i to d2x)? And is there any converter from d2r to d2 save file (want to play tcp/ip in old version)?

I added code to be able to also convert from .d2i to .d2x https://pairofdocs.github.io/atma-stash-d2r/

Testing with MainStash-1982.d2x -> MainStash-1982.d2i -> MainStash-1982.d2x (converting twice) I see that there are a few items that weren't converted back 100%.

There is only one byte that differs consistently for a few items in the stash. This could be the issue that the converter code is having

orig d2x : 4A 4D 10 00 80 00 02 C4 0C 20 97 E6 06 82 CC 9D 46 06 0E 25 00 78 04 14 B9 FF
conv d2x : 4A 4D 10 00 80 00 65 C4 0C 20 97 E6 06 82 CC 9D 46 06 0E 25 00 78 04 14 B9 FF
____________________________ ^

related to https://github.com/d07RiV/d07riv.github.io/blob/master/d2r.html#L279-L283 I believe. Could be related to "item version" data for the item

That example item above was a blue ring and d2r-gomule can read the .d2i file, then gomule-lod can read the twice converted .d2x file.
MainStash-oneitem-testitemversion.zip

but in the original .d2x MainStash.d2x the version of the item is Uknown (and in the twice converted d2x it's v1.10+)
image
Riv's converter probably fails for these items (or something else is causing issues, since d2x -> d2i worked for all those items in Mainstash-1982)

from gomule-d2r.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.