News: 11 March 2016 - Forum Rules, Mobile Version
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia

Author Topic: Visual Swiss Army Knife (Visual SAK)  (Read 453 times)


  • Jr. Member
  • **
  • Posts: 81
    • View Profile
Visual Swiss Army Knife (Visual SAK)
« on: January 28, 2018, 09:04:23 pm »
Hey guys,

I need a good program that can easily rip visuals (Sprites, Tiles,...) form games. There are few tools available, but when I try to use them, I always end up missing features. The other common problem is that if I hack or rip a game, the moment I close the tool I have to start over the next time I decide to continue.

That's why I decide to make a new one. Personally I like "LZ77 Restructor 2", so for star it will be based on it, but I will add some crucial feathers in how the decompressed stream to be interpreted, because in current state its useless to me (all the gba/nds roms I tested the picture is wrong/distorted).

So while doing that how about we together create a really powerful toll? Lets do some brainstorming what a good tool should look like? What features should it incorporate? Please share your ideas. Also I will need a name for the project. Currently I imagine it as "Swiss army knife for visual rip" :laugh:

The working flow for the tool should be something like:
- Open ROM (no restriction for a platform)
- Add or find an address that contain visual
- Decompress the visual starting of that point. For now LZ77 (aka LZ10) but later we may add other.
- Give all the tools, which will interpret the decompressed data as visual.
- Add extra info to that address (BPP, Pal, length,...)
- At every moment - Save of current project, so later we can continue
- At every moment - Save of the visual in file, clipboard.
- some neat features for those that study the ROM or modders - finding a reference or table that contain it.

It took me sometimes till the concept become clear. So finally first version could be released. Because nobody had suggestion for a name, I choose:
Visual Swiss Army Knife (Visual SAK)

Download: Version 1.0

 1.0 - First release. Manual address adding for tiles and palette. Save/Load project. Template system for interpreting the images. Currently only GBA 4BPP LZ10 is supported.

ToDo List:
 - adding noncompression
 - adding 8bpp support for GBA
 - SNES 2/3/4/8 bit support.
 - adding LZSS compression for SNES (Final Fantasy Titles)
 - adding Search ability. Initially for LZ10 compression.
 - reading compressed Palettes. Initially LZ10 only
 - support for other compression (on request)
 - support of other console format (on request)
« Last Edit: February 23, 2018, 08:26:18 am by Squall_FF8 »


  • Sr. Member
  • ****
  • Posts: 314
  • Good news! An anomaly solved the enigma.
    • View Profile
Re: Sprite ripping tool
« Reply #1 on: January 28, 2018, 11:37:17 pm »
I think you should decide the scope for your tool before you begin. I find that tools which try to support too many formats end up with cluttered controls and an inconvenient workflow.

One possible workaround is to have a 'mode selector' where you selected the platform you are working with, and all unrealted controls would be filtered out. For example, if you select GBA, all settings/controls SNES features would be hidden.

Other than that, some general features I like in tools:
 Minimal confirmation message boxes. For example, rather than "File exists do you want to overwrite?", just auto save the original old to a 'backups' folder.

 Don't clutter up the control area with multiple controls that do the same thing. For example, a "save" button and also a "File > Save" menu.

 Whenever pertinent, save settings to a file that can be easily shared with others. For example, if you're ripping graphics from a particular game, let the user save the location of all the graphic to a project file. They could then share the project file so that others could easily rip the same graphics.

 I wouldn't bother adding any editing features since most people use their own favorite photo editor.

 Inserting as well as extracting graphics would be nice.
« Last Edit: January 29, 2018, 12:00:11 am by weissvulf »


  • Jr. Member
  • **
  • Posts: 81
    • View Profile
Re: Sprite ripping tool
« Reply #2 on: January 29, 2018, 03:58:48 am »
Hehe weissvulf, its like you are reading my mind, but express the thoughts with different words  :thumbsup:
- minimal confirmation
- (not) using of menus
- freedom to save by the user
- NO editing!
- supporting too many options/formats may lead to reduced effectiveness/inconvenient workflow.

I would love to do inserting. There are some technical problems with that - since it need to be compressed the size will be different. When the new size is smaller its ok, but if it's larger then its a problem.

BTW maybe 'Sprite ripping' is not accurate expression of what I mean. Well definitely the ripping part is involved as possibility, but also a tool that easy find visuals, accumulate a knowledge of how it was done for the purpose of hack/mod or even making a ROM-Map of Visuals ...
For example currently I need to find the job sprites of FF5a. I'm not interested in actual ripping, rather finding them in the rom, understanding how they are stored internally, finding the master table that contain all job sprite indexes/pointers,...


  • Jr. Member
  • **
  • Posts: 81
    • View Profile
Re: Sprite ripping tool - Visual Swiss Army Knife (Visual SAK)
« Reply #3 on: February 23, 2018, 08:09:03 am »
Finally version 1.0 is ready! Here is an extended list of implemented features:
 - New Project
 - Load/Save of current project
 - Template system for recognizing/interpreting an image
 - Currently only GBA 4BPP LZ10 format is supported!
 - Manually adding address for Tiles & Palette
 - Support of decimal and hexadecimal format of the address
 - Loading a Palette from the ROM
 - Some basic operation with palette - Grayscale 16, Grayscale 256
 - Zoom of the drawing
 - Transparent drawing

* Download from main post.
* Check the Offset property. It mean that in decompressed stream visualization will start after skipping few bytes! This is an unique feature that non of existing tools have! Such option is crucial, because most of the Final Fantasy titles have header after decompression that needs to be skipped!

Please download and check this tool and share any feedback that you have! Lets together make a tool that is useful as famous swiss army knives! The tool doesn't require extra layer (dll, .net, DirectX,..), so its just an .exe file.


  • Sr. Member
  • ****
  • Posts: 314
  • Good news! An anomaly solved the enigma.
    • View Profile
Re: Visual Swiss Army Knife (Visual SAK)
« Reply #4 on: February 23, 2018, 06:10:45 pm »
I thought of a feature that might be handy. If this tool is designed to map the graphics in a game and save the map to share with other modders, an option to assign graphics to a sub-group which the user could 'show' or 'hide' would be nice. For games that have hundreds or thousands of sprites, being able to thin the pool down categorically could be handy.

I tried the tool and I'm not really sure how to use it. The interface seems self explanatory, but I don't get the expected results. Maybe it would be good to include a basic VSK file to get people started?

1) I get a 'S:\...FFV advance.gba not found' message at start up.

2) I loaded a FFV USA.gba file, but I'm not sure where graphics are in the ROM for testing. I enter the address shown in the tool's screen-shot and get an 'Access violation: write of address' message. I get a similar message when I adjust zoom, width, height, offset, or name.

3) There seems to be an anchoring issue for the controls on my PC: the 'load Palette, add/remove address' buttons are anchored in place, but the address inputs and palette view are anchored right. Also, if I resize the window enough to remove the lower scroll-bar, the palette-view is cut off. I think I have my PC's view-settings tweaked, so that may be causing the issues.     
« Last Edit: February 23, 2018, 06:22:04 pm by weissvulf »