rdw-archive / RagnarokFileFormats

A manifest of the various file types used in the Ragnarok Online client
77 stars 23 forks source link

Add a specification of the GRF format #37

Closed rdw-software closed 1 year ago

rdw-software commented 2 years ago

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:

zhad3 commented 2 years ago

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

rdw-software commented 2 years ago

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.

rdw-software commented 1 year ago

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.