blixt/py-starbound

SBBF header version updated in nightly

Closed this issue · 13 comments

Hey @blixt

The latest nightlies have changed the version string in asset files from SBBF02 to SBBF03. I've got it working fine again by just updating the assert on line 89 in sbbf02.py and I have seen no issues in starcheat which should be working it pretty extensively.

I'd submit a patch but you're referencing this specific version quite a bit, not sure how you want to handle it but it doesn't feel right just updating that assert.

Yo @wizzomafizzo! Thank you. I'll be refactoring the code to work with all the new versions soon. Unfortunately I've been too swamped to do it, but I'll try to get around to it this week. Please let me know if you run into other issues!

No worries man, we made a temporary dirty workaround fork so no rush from this end. I'll definitely give you a shout if any other errors pop up.

This has been changed again in the latest nightly build. It wasn't as simple as adding "SBBF04" to the formats list, but I haven't even taken the time to open a hex editor and check what the actual version string is (it may still end up simple as adding a new string). I will keep you updated when I get round to it.

Wow this issue is old as hell! I forgot how long ago we made all this stuff.

Header of the the new format, at least for the vanilla assets file, is SBAsset4. If I uncomment the assert it gets a little further but then this:

File "/Users/callan/dev/starcheat/build/starbound/btreedb4.py", line 124, in initialize
    assert db_format == 'BTreeDB4', 'Expected binary tree database'
AssertionError: Expected binary tree database

I can keep uncommenting them but it just keep breaking more and more.

hey @blixt i see you’re still around.

do you plan to take this up again or did your work on starbound stop for good?

blixt commented

Hi @flying-sheep I've been picking up Starbound again after 1.0 and want to make this tool work again. I'm very swamped these days so this will be a slow process if I'm to do it alone. Currently I'm analyzing the new file structures and they seem to have changed to remove the SBBF header and bumped their BTreeDB implementation version.

If you or anyone else has more information on the new file structures, that would be greatly helpful. :)

@blixt i have not had a chance to test it yet but apparently this implementation someone did for the upcoming starcheat patch is working. hope this helps a bit: https://github.com/medeor413/starcheat/blob/a2507f6d197222668dfb80cabb6cd42589946280/starcheat/assets/sb_asset.py

blixt commented

@wizzomafizzo Thank you! I will look into this. I'm currently mapping out the new BTreeDB5 format and once I've got that down I'll update py-starbound with support for the latest Starbound data formats. :)

blixt commented

Current status of BTreeDB5 header:

screen shot 2016-07-28 at 2 30 48 am

blixt commented

btreedb5

blixt commented

I've now completed the big update to support Starbound 1.0 formats. I also decided to document the file formats which may be of use to others. Please let me know if you have any ideas on improvements!

wow, super cool!