ResourceDragon - Proprietary Archive Extractor

ResourceDragon - Proprietary Archive Extractor

4 devlogs
33h 22m
•  Ship certified
Created by wearr

ResourceDragon is a highly extensible viewer and extractor for proprietary archive formats, written in C++, SDL3 and ImGUI!

Timeline

Ship 3

This ship is currently being voted on by the community. Check back later!

wearr

4 days ago

wearr Covers 1 devlog and 3h 19m

Little bit of a smaller update this time around, but I got stacktraces working in a cross-platform way! Should there be an issue with the app, it should be much easier for the user to report issues now.

Update attachment

Ship 2

1 payout of shell 40.0 shells

wearr

about 1 month ago

wearr Covers 1 devlog and 10h

Hello! I'm back with another devlog, and this time with some pretty good progress!

I've managed to get both an Emscripten and Windows build working, as well as of course the Linux build, which is now on CI/CD! Every commit will cause a new build of the Linux app to be automatically made.

As well as this, RD is available as an online demo, just click the demo button and you'll get access to it, or go to https://wearrrrr.github.io/RD/. The tests/ folder has a couple of tests to show off the capabilities of ResourceDragon.

Thank you for reading!

Update attachment

Ship 1

1 payout of shell 58.0 shells

wearr

about 2 months ago

wearr Covers 2 devlogs and 18h 6m

Today is a pretty big day, squirrel-lang support is practically complete! 🎉

To do this, I needed to put quite a bit of extra effort in, it required creating a good C++ template around calling squirrel functions with variadic arguments, which was certainly.. fun (thank you C++ for finally adopting decent metaprogramming!). However, it's finally done, and that means I can promptly never touch squirrel again! (/s, it's actually a pretty nice scripting language).

There weren't many other notable improvements made over the past 9 hours, mostly slowly getting things ready for a proper 1.0 release candidate, but here's a quick breakdown of anything notable from my commit history.

  • Improve the Logger class substantially, it should now not cause horrendous codegen according to a friend.
  • Add a nice abstraction around printing squirrel compiler and runtime errors. Eventually I'll make something nicer for runtime errors (so that the app doesn't randomly crash when I inevitably mess up memory management)
  • Update the pack.sh script to properly generate a working build for Linux.
  • Migrate to SDL_Mixer 3.x API, and finally vendor in SDL as a proper submodule, instead of just blindly assuming you'll have it installed (:clueless:)
  • Make SquirrelArchiveFormat::CanHandleFile() not absolutely demolish performance by forcing the end squirrel developer to only grab a small subsection of bytes at once instead of the entire buffer (this one was absolutely on me, very stupid idea to think that copying a potentially 1-2gb buffer wouldn't be horrible for performance!)

And well, that's about it. I know these devlogs are mostly screaming into the void, but this was still quite fun to write, i'll try to keep them more structured like this.

(captioned: the magical almighty power of throwing myself against a wall for 9+ hours to make a format test work)

Update attachment

Tons of improvements with this!
But most notably, squirrel-lang support for custom formats! It's the most recent addition, and I've chosen it as the language of choice over Lua. However that doesn't exactly mean Lua won't be supported, it's just not a priority right now.

Update attachment