Sprites
& How To Rip Them

tools & programs

TILE VIEWERS
YY-CHR
Tile Molester
TiledGGD

DATA FIDDLING
Cheat Engine
HxD
MacroRecorder

EXTRACTION TOOLS
QuickBMS
NinjaRipper
DevXUnityUnpacker
Noesis

IMAGE EDITING
AnimGet
SpriteSheeter
TilED
StitchStudio
AntiDupl
SpriteHoe



Details on the various tools of the trade I've personally used in sprite ripping, or at least figure someone out there might want to know of their existence.

tile viewers

YY-CHR


| official site | ver 0.98 |
Gimmick! (NES)

A basic tile editor that covers graphics from 1BPP to 4BPP; its graphics formats are all presets suited for specific consoles, and will typically load it automatically if it recognises the file extension. An ideal tool to get to grips with working with tiles, and well-suited for practically all the 8-bit and 16-bit platforms.

A particular strong point is its display options, able to arrange the tiles in a variety of presets that can help facilitate speedier assembly.

I personally still use version 0.98 despite being close to two decades old as of this writing; I've yet to get much mileage out of the new version's PRG Editor, though its Palette Editor is admittedly easier to use than Tile Molester's.

The older version has a quicker snapshot key (F9!) with no save window, and it allows you to paste graphics in from the clipboard, provided it fits within the 128x128 canvas, and will adapt the colours to match the chosen palette. This is a big help if you're looking to ROM hack, as otherwise you have to perform all your graphics editing inside of the program.

Tile Molester


| GitHub (version 0.20) | Romhacking.net (version 0.19) |
Bomberman Party Edition (PlayStation)

A powerful tool with an unfortunate name (it was the style at the time, between emulators NESticle and Rather A Pokemon Emulator...!), it supports everything YY-CHR can, in addition to 1D/2D (Linear/Tiled) modes, and has a palette tool that can best be described as "well, it works".

The program has a few notable perks, one of which is its canvas resizing and tile arranging options. Holding Shift and pressing the arrow keys will shrink or expand the canvas in that direction, and going to "View > Block Size" and unticking "Full Canvas" will lock the tile arrangement at whatever size the canvas is currently set to.

In addition, "View > Row-Interleaved" will arrange the tiles to better suit a 16x16 presentation. It's not as robust as YY-CHR's presets, but it's ideal for converted Neo Geo graphic files, and using the canvas the right way in the right game can really speed up the ripping process.

The palette tool is best used for finding colours inside the file you're using; its functionality for importing palettes is limited and clunky. As such, working with games where graphics and palettes are stored in different files is a nuisance, requiring you copy them in with a hex editor, or just using TiledGGD instead.

It does trump that tool by properly recognising SEGA Mega Drive palettes though, and the "tmspec.XML" file can also be modified to include support for unique palette and graphic types. You'll have to close and reopen the program every time you edit the file, but it's robust!

Being built in Java, it's ideal for using on non-Windows operating systems. It's a decent everyman tool, though its foibles are a bit crippling, like its limited canvas options for Linear/2D graphics (TiledGGD beats it in that regard), and its inability to copy results to clipboard: you just have to capture the window with PrintScreen and paste it somewhere, since its clipboard is separate from the Windows one.

A particular quirk of Tile Molester is its trouble with Neo Geo Pocket ROMs and Nintendo 64 savestates, showing every tile was mirrored, forcing you to manually correct them. YY-CHR's Neo Geo Pocket option has that correction built in, so you're best using that instead.

Version 0.20 is a marginal update that, in my experience, is more glitchy and less reliable than it once was, with no added benefits to offset that. Hopefully in future it'll win me over, but I suggest sticking with the older versions for now.

TiledGGD


| GitHub | Romhacking.net |
Mario vs. Donkey Kong: Mini-Land Mayhem! (Nintendo DS)

Originally a Japanese tool simply named GGD, it's since been branched into TiledGGD to add increased functionality and support for tiled graphics. Unlike YY-CHR or Tile Molester, this is strictly a graphics viewer, with no functionality for editing sprites or palettes. It lacks the additional graphics formatting options of those programs -- with no planar or composite settings, SNES games and other older platforms are incompatible with it.

That said, it's perhaps the best all-purpose exploration tool, ideal for getting an idea of what's inside a file, and deducing whether it or something else is the right tool to be extracting things with. It's extremely well-suited for large graphics and textures, having greater control over the canvas or tile size makes working with fussy files that much easier.

It also has an extremely convenient palette viewer, allowing you to freely browse a file at will and change formats on the fly. There's only a few niche palettes it can't properly display, and it sadly can't export colours into actual palette files, but just for ease of use it's my tool of choice. Even if another program is better suited to ripping from a file, to take note of the addresses where graphics and palettes are stored is easiest done in this.

data fiddling

Cheat Engine

If your emulator's RAM editor isn't up to snuff, or you're interacting with games or programs that could do with some outside interference, this is your man. It's got a wide range of options for finding addresses, including floating bytes and text strings, limiting the results within a certain range, and probably more I'm not even acquainted with! The Memory View will also let you view memory just like an emulator's RAM Editor, with changed values highlighted in red.

Search results appear in the top-left window, and double-clicking them (or selecting them and pressing the red arrow button) will add them to the bottom window, where you can now tinker with them. Enter allows you to enter a new value, and Space will freeze the chosen address.

Right-clicking an address and choosing Set hotkey will allow you to -- you guessed it -- set a hotkey! This allows you to freeze, unfreeze, increase or decrease the value by a given amount at the push of a key, and is a great help in automating the process. Paired with something like MacroRecorder, you can potentially take all the legwork out of a screenshot rip if you know what you're doing...!

The Enable Speedhack function can be especially handy, allowing you to reduce the game's speed to 10%, or potentially making it 500 times as fast, though I haven't dared try that myself...! If an emulator lacks any speed options, this is a good alternative, though some games or emulators don't even acknowledge it, and the results may not be consistent -- Cheat Engine is an external program, after all, and it's effectively fighting against whatever program it's linked to.

RAM addresses tend to fluctuate based on how games handle their memory, and that's exacerbated by the fact Cheat Engine is accessing the game's data buried inside the emulator wrapper.

For this reason, it's worth keeping an easy-to-find address as 'reference' in your Cheat Engine table; that way if you reload it and the addresses no longer line up, you can find that address in-game again, copy it, right-click the version in your table, and choose "Recalculate new address", and then "Change to address". That should get you back on the right track again!

I'm told Pointers are a way of circumventing this, by attaching the address to internal data that helps tell it where it belongs even when addresses have been offset... but I've never figured them out, personally. They're probably helpful, I'm just old and set in my ways...!

Although fiddling with games and emulators is its modus operandi, I also find it ideal for speeding up certain functions in TiledGGD, like setting the canvas size or changing skip options. Get creative with its applications if it helps lighten your workload!

HxD

This is the one I use, though any hex editor tool is good to have around, something that lets you tinker with the raw bytes of any given file. Sometimes you just gotta see the data and get hands-on!

It's good for figuring out file structures, tinkering with palettes (once you know their addresses), or just plain ol' pokin' around. It's hard to specify its exact uses, and it's very ancillary to sprite-ripping, but if you're gonna root around in the guts of video games then it's a must.

If anyone's got suggestions for a more robust hex editor though, I'd like to hear it -- being able to view stuff in Little-Endian or a Relative Search would be neat. wxMEdit is worth a mention for its greater language options, allowing you to view data in Shift-JIS and other alphabets.

Macro Recorder

A program for recording key presses and mouse movements across various programs. A life-saver for speeding up grunt work if you use it efficiently; getting it to copy graphics coordinates from a hex editor into TiledGGD and saving the results; using Cheat Engine hotkeys to increment animation frames and snapshot them in an emulator...

It probably works best as a supplement to your work flow, something to minimise the work though, though to make it handle almost every facet of sprite-ripping can be particularly satisfing. It takes some trial and error to optimise the process, and the potential need to proofread the results after the fact, but to have an excuse to step away from the computer and still get work done is always appreciated...!

Be aware that it needs to be run under Administrator mode for it to interact with Cheat Engine, otherwise it just don't see the program at all.

AutoHotkey (official site | GitHub) is an alternative that's arguably capable of more robust functions, but requires learning its scripting language to make the most of it. If nothing else, it can circumvent Macro Recorder's lack of "repeat" function in its free version by loading a script to press the "play" key every X seconds.

extraction tools

QuickBMS

An all-purpose command-line tool for extracting, editing, or otherwise interacting with a wide variety of file types! It's a very minimalist program, and mostly a gateway to making files understandable in other tools, but if you're going to explore PC games or modern console games with esoteric file types, you'll want to get acquainted with this. Its XNB script is essential to extracting sprites from Xbox Live Indie Games, or other games made in XNA Studio, for starters.

The program itself is useless without scripts, but it comes with a couple thousand bundled in. Take a goosey through XeNTaX's game modding threads or the VG Resource forums if you're in need of resources, particularly Struggleton's tutorial and Random Talking Bush's scripts.

NinjaRipper

A tool that opens up your program of choice and allows you to dump its textures or 3D models with a hotkey. Largely used for dumping 3D models from PC or PS2 games (a field of expertise I know nothing about, but ought to research for this section sometime...!), but the texture dumping is good too, ideal for when a game's files are compressed.

It requires DirectX to work though, and some older platforms like the SEGA Saturn and PlayStation handle 3D in a funky way that the tool struggle to interpret them.

The program has since shifted to a paid model, requiring a one-time payment on Patreon to unlock access to it. The older version is still available for free on other sites though.

DevXUnityUnpacker


| official site (version 11+) | MEGA (version 10.06x64) |
Bomberman Touch 2: Volcano Party (iOS)

A shareware program that's extremely robust at exploring Unity games, splitting every file into a folder with access to their code, camera, per-scene data, and of course, models and textures. It can support games made in Unity and Unreal, as well as smartphone game files such as IPA, APK, XAPK, and OBS.

Exploring big games is a bloody nightmare though. If you know the file extension, you can use the search form to find only files of that type: entering "PNG" will display only textures, or if you know the filename, that too. For textures, this is extremely handy, as it allows you to export the entire 'index' sheet, or even view the individual frames and export them on their own.

Even as a free unlimited trial it's quite versatile, though you can only extract one texture file every two minutes. You can circumvent this by adjusting your computer clock after every export, which is a mite obnoxious, but a darn sight better than the alternative:

A lot of advanced functionality relating to code or 3D models is locked behind a paywall, with prices averaging at $150 USD and paid only through cryptocurrency or Russian credit cards... so, uh, good luck with that. I'm told Asset Studio is a viable alternative, though I've yet to get acquainted with it.

Noesis

A tool similar to QuickBMS, but for viewing and exporting textures and models from game files it's compatible with. Requires .DLL plugins to understand certain file structures, making it a lot less convenient than the aforementioned tool, but its texture-reading functionality is decent, and a good fallback if TiledGGD just can't render them correctly.

image editing

AnimGet

Tell AnimGet to "Observe" a window, and it'll record every changed frame it sees, saving them all as separate .BMP images! Ideal for capturing animations and sparing you the need to frame step and screenshot every frame. It might struggle with larger windows, in which case you might just want to capture a full-frame video, but good to have around.

SpriteSheeter


| VG Resource release thread | GitHub |
Tribal Hunter (PC)

A program by Daxar that allows you to import individual images and organise them into a sprite sheet! Admittedly I'd just used webpage software like Microsoft FrontPage for this in the past, but a dedicated tool with more specialised functions and less bumph probably makes more sense to most folks.

It works best with individual images, though you can also tell it to import a sprite sheet and slice it into evenly-spaced chunks. Ideal for organising dumps from Clickteam or GameMaker creations.

TilED


| official site |
Double Dragon (Xbox 360)

A tool for making maps out of tilesets, ostensibly for importing into game-making tools like RPG Maker and the like. It's a good fallback for assembling tiles, sticking rigidly to the tile grid you set. It's a bit fussy to get used to at first -- needing to save separate tileset and tilemap files before you've even begun work is a hassle, but it's definitely worth exploring.

A notable perk of its files is that they're easily readable in a text editor like Notepad, and you can edit the tilemap that way if it's easier for your workflow; be aware it's very temperamental if you make one little mistake.

The tileset file will link to the image you're using to generate tiles from, and changing it to a different image will effect the tilemap. If you're assembling sprites that all use the same layout, this is an incredible time-saver -- export the 'map', swap the image in the tileset file, reload the map and repeat!

StitchStudio


| Archive.org | local backup |
Croc 2 (Game Boy)

A program by Tobias Fleischer that lets you stitch multiple images together into one image, or 'unstitch' an image by converting it into tiles of your chosen size.

Before I came around to TilED, this was what I turned to for making tiles accessible in other programs, using its Unstitch function and chucking them into something like Microsoft FrontPage. It might have application for making sprite sheets too, stitching standalone image dumps into one big file, though the fact it can only crop from the right and bottom limits the practicality of that. I personally use ReaConverter for my bulk cropping needs.

AntiDupl


| official site | GitHub |
X-Men: Mutant Academy (Game Boy)

A program that compares images and assesses how similar they are, with the option to delete the copies. If you've got lots of image dumps and it's too much to manually weed out the repeats, this is your tool -- set a path and let 'er rip!

Be sure to tinker with the options: 5% or 0% is ideal for pixel images, any higher and it's prone to believing different sprites are the same. I think green percentages denote exact matches that are flipped or mirrored, I forget.

A life-saver when working with Source Explorer and the like, though be sure to give it a once-over just to make sure, and that it deletes the ones in the appropriate folders!

SpriteHoe

A command-line tool by Black Squirrel for removing excess pixels from images -- if a row or column is identical to the one next to it, it gets removed. Built to minimise empty space and maximise filesize efficiency in sprite sheets, though it's also capable of restoring unevenly-resized screenshots to their original resolution... though not without some proofing.

To use it, edit the "SpriteHoe Batch" file to include the parameters you want after line 4 ("SpriteHoe.exe %1 "), then place the image you want in the folder before dragging and dropping it on top of the executable. It might take some tinkering with command-line and babysitting to get the results you want, but good in a pinch.

◄ back