rdw-archive/RagnarokFileFormats

Add a specification of the GRF format

rdw-software opened this issue · 3 comments

There are multiple versions, and IIRC not all of them are supported by the current standard tools (GRF Editor mainly). I remember there was some ancient tool for the old Arcturus/RO alpha version, which even had some textual documentation on how it worked. Maybe it's still archived somewhere? However I don't think the source is available (this always makes me very sad).

I know some people have worked on implementations that should be functional, though I'm unsure as to what versions are supported. Some examples:

Looking at how many working implementations there are, the format can't be very difficult to understand. At least it should be much simpler to research than GR2 or even RSM/2.

To be determined:

  • How do GRFs relate to RGZ and GPF? Are they the same or at least use similar mechanisms? I doubt they'd create multiple distinct archive formats, but it wouldn't be the first time they've done something silly...
zhad3 commented

I have based my implementation on libgrf which is used by "grftool" made by the openkore guys back then. What makes it special IMO are their comments in the code which give some good insight at what Gravity did wrong in their encryption algorithm. You can download the source here: https://sourceforge.net/p/openkore/code/HEAD/tree/grftool/trunk/

GRF Editor sources may be available somewhere?

At the end of the post of https://board.herc.ws/files/file/138-grf-editor/ there is a mediafire download link for the sources. However he does not include everything in there (e.g. the encryption logic) for whatever reason shrughttp://www.mediafire.com/download.php?7z6hkdag4ayj8rs

Thanks! I guess the encryption and early (alpha/Arcturus) formats are the most "difficult" issues. However, I haven't had time to look into the format much so I might be wrong.

Since you've already worked with the format, maybe you could do a quick write-up of the most important points and create a PR? :) Even just a draft or bullet points is fine, I can always add more details later. Don't feel obligated, of course; I will likely get around to researching the details eventually... hopefully.

Some parts are missing, but the initial version is published here: https://ragnarokresearchlab.github.io/file-formats/grf/

I suppose this can be considered complete, although I should look into 1.2/1.3 (beta/fRO client) and GRF encryption eventually.