Jump to content

8 Screenshots

About This File

** This program has been orignally uploaded on rAthena; it's been uploaded on Hercules due to multiple requests. If you have suggestions or feedback and you want a quick response, please contact me via rAthena. I will respond on Hercules' forum as well, but it'll take a bit longer ;).

 

Hey everyone,

 

This is a GRF tool I started to develop for my own personnal use, but I thought I'd share it since I've upgraded the UI. Its primary goal is to be easy to use while offering a wide variety of options and customizations. The software is quite stable and can handle large operations easily.

 

How to install

  • Download the zip archive provided from the download link at the bottom of this description or directly from there : http://www.mediafire.com/?aflylbhblrzpz0h
  • Install the application with GRF Editor Installer.exe; if you are missing a .NET Framework you will be prompted to download it.
  • Once you are done, you can start the program from the link on your desktop.

Key features

  • Overall speed is faster (or at least equal) than any GRF tool.
  • Common operations : add, delete, merge, extract, preview, save.
  • Undo and redo for any operation.
  • It can open any GRF file.
  • Clean and very interactive interface.
  • Saving formats supported : 0x200, 0x103 and 0x102 (through the Settings page).
  • Instant filter and search options (example : "map .gat").
  • File association and context menus integration for .grf, .gpf and .rgz (through the Settings page).
  • Can rebuild separated images into one file easily.
  • Lub decompilation (in beta, but it can decompile almost any lub file so far).
  • Drag and drop (with the ALT key, can be modified in the Settings page). This is a big part of the software; most of the items can be moved around within the application itself or from/to Windows Explorer.

Tools

  • Sprite editor : a simple sprite editor with powerful features. Semi-transparent images can be added, you can easily change the order or replace images, etc. This tool can convert images in the wrong type by showing you multiple solutions (merging a new palette, dithering the image by using current palette, using the closest color, and a few more).
  • Grf validation : allows you to validate a GRF with multiple settings. It can detect corrupted GRF entries, invalid sprites, empty files, non-GRF files, duplicate files and a lot more.
  • Flat maps maker : generates flat maps from .gat and .rsw files. Useful to generate WoE maps or to fasten up the loading time.
  • Patch maker : generates a GRF patch based on two different GRFs.
  • Hash viewer : shows the hash code (both CRC32 and MD5) for files.
  • Image converter : converts an image to any format requested (BMP, PNG, JPG, TGA).
  • GrfCL : used to create batch files (.bat) which can automate tasks on GRF files. See the content in GrfCL.rar in the download for more information. This tool can be customized from the sources as well.
  • Palette recolorer : creates new sprites by changing their colors (this tool is now deprecated).
  • Client database editor : allows modifications of the database client files (txt and lua) with easy and simple tools. Work in progress.

Grf encryption

 

The encryption feature has been enabled again. It's similar to what it used to be and it has been tested on client versions ranging from 2012-08-01 to 2014-02-05. Some error messages will be displayed if necessary. If you have an issue, copy the error message (with the code, if there's one) and send me the client executable with the cps.dll file generated by GRF Editor. There shouldn't be compatibility issues anymore though!

 

Technical stuff

  • Requires .Net Framework 3.5 (SP1) Client Profile to run (3.5 or more will work as well).
  • Automatically converts file name encoding to their proper values (you can change the encoding).
  • Data virtualization is used as much as possible to preview files, meaning the files aren't completely loaded.
  • Right-clicking an item will bring up the available options with that file.
  • Preview file formats : txt, log, xml, lua, lub, bmp, png, tga, jpp, db, ebm, pal, gnd, rsw, gat, rsm, str, spr, act, imf, fna and wav.
  • Services are "crash ready", meaning that you will be warned about a failed operation and no work will be lost (the application won't close and crash). It tries to continue operating even if it meets unsual conditions.
  • Operations can be cancelled by clicking on the button near the progress bar.
  • The warning level can be changed to avoid messages like "Please select a folder first."
  • When prompted with an error, use Ctrl-C to copy the current dialog's content.

Some screenshots!

1) Previewing an act file, while showing the search feature

f4s9HyJ.png

 

2) Preview of a model file (rsm)

JJGzEDe.png

 

3) Preview of GrfCL with the MakeGrf command

grfcl.png

 

4) Preview of the Client Database Editor

KIilfiY.png

 

5) Preview of Grf validation

RhQY5hj.png

 

6) Search feature (press Ctrl-F or Ctrl-H to bring up within a text editor)

vGwnomr.png

Sources : http://www.mediafire.com/download.php?7z6hkdag4ayj8rs

 

Got a feedback? I'd gladly hear you out and fix issues you have with the program. If you want new features to be added, don't hesitate to ask!


What's New in Version 1.7.0   See changelog

Released

  • Cummulative updates
  • [Added] FlatMapsMaker : Added a new tab in to change the colors easily.
  • [Added] FlatMapsMaker : Unique texture name identifier to create maps with different tile colors.
  • [Fixed] CDE & SDE : The configuration files associated with these tools are no longer saved in a different path.
  • [Fixed] CDE : Now displays resources from the encoding selected in the options.
  • [Fixed] FlatMapsMaker : The "Making a GRF" option wasn't working properly from a recent update.
  • [Fixed] GRF : Encrypting added files without saving the container first, in a thor patch, no longer creates invalid data.
  • [Fixed] GRF : Renaming a file if a hidden entry with the same name already exists will now work properly.
  • [Fixed] GRF : RGZ and Thor formats will now release their resources upon loading. This prevents "file in use" problems when saving.
  • [Fixed] GRF : The encoding of added files wasn't being taken into account with the new structure.
  • [Fixed] GrfEditor : Changing encoding now also changes every fields in the tree nodes data (would cause issues when adding files, such as having folders appearing twice).
  • [Fixed] GrfEditor : Changing encoding with no opened GRF no longer throws exceptions.
  • [Fixed] GrfEditor : DB files no longer throw critical exceptions if the image header is missing.
  • [Fixed] GrfEditor : Extracting content to a path containing a dot will no longer extract to its parent directory.
  • [Fixed] GrfEditor : Extracting items from the search result now always extracts at the proper path.
  • [Fixed] GrfEditor : Fixed the extraction method (multi-threading wasn't behaving properly).
  • [Fixed] GrfEditor : Rgz and Thor files will no longer allow files to be dropped on their project node. Use their root node instead.
  • [Fixed] GrfEditor : The horizontal grid splitter for the search result will now work properly.
  • [Fixed] GrfEditor : The window priority for dialogs has been fixed.
  • [Fixed] GrfEditor : Updated the embedded manifest (fixes some UI problems).
  • [Fixed] GrfEditor : Visual bug when dropping a file or folder.
  • [Fixed] GrfEditor : When adding files with an AddFiles command, duplicate files will no longer be allowed (causes issues when undoing an operation).
  • [Fixed] GrfEditor : When extracting folders with very similar names, it won't extract files that weren't requested anymore.
  • [Fixed] GrfEncryption : No internal data has been set in the GRF (which made it impossible to manually decrypt the files afterwards).
  • [Fixed] GrfEncryption : Symbols have been changed and the embedded library hasn't been updated.
  • [Fixed] LubDecompiler : Assignations have been improved, but repairing this bug would require changing the structure of the code (which I cannot do at the moment).
  • [Fixed] LubDecompiler : Closure methods are now shown more accurately (their indentention has been fixed as well).
  • [Fixed] LubDecompiler : Functions in the root function will now display properly.
  • [Fixed] TkLibrary : ListViewItems now display with their proper size.
  • [Fixed] Utilities : The encoding service has been remade, there shouldn't be issues with the encoding detection anymore.
  • [Modification] GrfEditor : When setting a key, it will start scanning for encrypted files (to allow broken files to work properly).
  • [Modified] GrfEditor : Settings
  • [Removed] GrfEditor : The Palette Recolorer tool has been removed for various reasons. It will be replaced by a more user-friendly tool in a future release (or in a new software).



User Feedback

Recommended Comments

I'm attempting to load the data.grf from a fresh kRO install (from here) and I get this error:

 

--------------          Message          --------------
Couldn't load the GRF.
--------------        Stack trace        --------------
   at GrfToWpfBridge.Application.DefaultErrorHandler._reportAnyManagedExceptions(String message, Exception exception, ErrorLevel errorLevel)
   at GrfToWpfBridge.Application.DefaultErrorHandler.Handle(Exception exception, ErrorLevel errorLevel)
   at ErrorManager.ErrorHandler.HandleException(String message, Exception exception, ErrorLevel errorLevel)
   at GRF.Core.Container._load(String fileName)
   at GRF.Core.Container..ctor(String fileName)
   at GRF.Core.GrfContainerProvider.Get(String fileName)
   at GRF.Core.GrfHolder.Open(String fileName, GrfLoadOptions options)
   at GRF.Core.GrfHolder.Open(String fileName)
   at GRFEditor.EditorMainWindow.<>c__DisplayClass63.<_load>b__58()
   at GRF.Threading.GrfThread.<>c__DisplayClass7.<Start>b__6()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

--------------         Exception         --------------
System.Exception: Couldn't load the GRF. ---> GRF.ContainerFormat.GrfException: The length of the stream is too small for this container. Unable to parse the header.
Actual size : -1610635553
Expected minimal size : 46
   at GRF.ContainerFormat.GrfExceptions.ThrowHeaderLengthInvalid(Int32 length, Int32 expected)
   at GRF.Core.GrfHeader..ctor(IBinaryReader reader)
   at GRF.Core.Container._load(String fileName)
   --- End of inner exception stack trace ---
--------------          Message          --------------
The length of the stream is too small for this container. Unable to parse the header.
Actual size : -1610635553
Expected minimal size : 46
--------------      Inner exception      --------------
GRF.ContainerFormat.GrfException: The length of the stream is too small for this container. Unable to parse the header.
Actual size : -1610635553
Expected minimal size : 46
   at GRF.ContainerFormat.GrfExceptions.ThrowHeaderLengthInvalid(Int32 length, Int32 expected)
   at GRF.Core.GrfHeader..ctor(IBinaryReader reader)
   at GRF.Core.Container._load(String fileName)
 

Anyone know what's going on?

Share this comment


Link to comment
Share on other sites

And as an added bonus, when I try to open the data.grf from the pre-re translation project, all clientinfo.xml says is

 

[null][null][null][null][null][null][null][null][null][null][null][null][null][null][null][null][null][null]

 

translation project grf updated.PNG

Share this comment


Link to comment
Share on other sites
9 hours ago, Vejova said:

And as an added bonus, when I try to open the data.grf from the pre-re translation project, all clientinfo.xml says is

 

[null][null][null][null][null][null][null][null][null][null][null][null][null][null][null][null][null][null]

 

translation project grf updated.PNG

save this as clientinfo.xml 

 

<?xml version="1.0" encoding="euc-kr" ?>
<clientinfo>
    <desc>Ragnarok Client Information</desc>
    <servicetype>korea</servicetype>
    <servertype>primary</servertype>
            <connection>
            <display>BesprenRO</display>
              <address>192.168.0.1</address>
              <port>6900</port>
              <version>55</version>
              <langtype>1</langtype>
        <registrationweb>www.besprenro.com</registrationweb>
        <yellow>
            <admin>2000000</admin>
        </yellow>
        <loading>
            <image>loading00.jpg</image>
            <image>loading01.jpg</image>
        </loading>
    </connection>
</clientinfo>



 

Share this comment


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Add a comment...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.