Tutorials » Saturn Ripping with Yabause

A quick look at any sprite website, including SDB, will show you that the Saturn is not a popular system to rip from. Part of the reason is the system isn't that well known - most of us grew up with a Sega Genesis, SNES, or Playstation, but few had a Saturn. The other reason is that ripping Saturn games is kind of a pain! Thankfully, emulation tools for Saturn have improved greatly in the last few years, and while the system's advanced 2D graphics are still tough to rip, it's easier than you might expect.

There are a few good Saturn emulators, including SSF and Yabause. For this tutorial we will be using a specialized version of Yabause called Yabause-rr, which was developed for use in tool-assisted speed runs but also happens to work great for sprite ripping!

I. Installation and Setup

First you need to download Yabause; you can get it right here. I don't know if this is the newest version or if development is still active, but it has worked extremely well for me so far. Also this emulator doesn't require BIOS to run, which is nice. Anyway, Extract all the contents of the .zip file onto your computer, wherever you want. Browse to that location and run Yabause-2541.exe.

1) Controls

This emulator doesn't come with much in the way of default controls, so you will have to set them yourself. To do so, go to Config > Settings and choose the Input tab. Change the "Connection type" dropdown to Direct. Select "Standard pad" in the dropdown and click config.

The default controls are dreadful, so change them! Here's how I like things.

You can also set up controls for player 2 if you need to.

2) Hotkeys

Yabause-rr has highly configurable hotkeys, which is always appreciated. To view them, just go to Config > Hotkey Config.

All the usual useful features are here. Pause and frame advance are big. I prefer to change pause to something simple like the "P" key, since the "pause" key on the keyboard is a bit hard to find. I also love being able to Fast Forward past boring parts. Helpfully, you can also set layer disable to a hotkey, as I have done in the image above - Toggle NBG, RBG, and VDP will let you turn off layers without fumbling through menus. And of course there's a Screenshot hotkey.

Also make note of the Savestate hotkeys.

I use savestates constantly when ripping. It's a good idea to make a save any time you run into another character, object, etc. that you plan to rip, so you can come back to it at any time. You can also create named save files by using File > Save State As.

3) Sound

Because Saturn games are CD-based, it can be difficult to get them running with proper sound. In many cases you will hear sound effects but no music. Getting that working properly is outside the scope of this tutorial, but if you want to shut off the sound you can easily do so by simply going to Config > Mute Sound.

II. Basic Sprite Ripping

That's all the configuration we really need to do for now, so let's get started. Use File > Open Cue / ISO to select a Saturn iso to play & rip from. Officially it supports .iso and .cue files, but I was also able to load a game in .mdf format.

Load up your game and get to a point where you can rip whatever sprites you want. It's easiest to rip a playable character, since you control what they do. Now we can begin to rip using the following features:

1) Layer Disable

The Saturn is well-known as a 2D powerhouse, and luckily Yabause-rr has a layer disable feature built in to help us with ripping.

To turn background layers on and off, use Tools > View Layers and uncheck a layer to disable it. Luckily, Yabause-rr also has hotkeys to turn layers on and off, although they aren't defined by default. I discussed this above, if you were paying attention.

There are four background layers (NBG0-3), as well as a "rotation scroll" layer (RBG0 - I don't know what it does - you can probably ignore it, but try disabling it if you need to.) and of course, a sprite layer (VDP1).

The games I've tried haven't used every BG layer. For example, Guardian Heroes only uses the first two most of the time.

All layers active.

Turn off NBG0.

Then NBG1.

For screenshot ripping, this is ideal. Just the sprites, with nothing else to get in the way.

2) Pause & Frame Advance

Remember when we talked about the "Frame Advance" and "Pause" hotkeys earlier? We're going to use those now. To pause the emulator, there are two methods.

  • Go through the menu; Emulation > Pause
  • Use the hotkey. The default is the "Pause" key, I recommend changing it to something simpler like "P".

To unpause, just hit the hotkey again or go back to Emulation > Pause.

Once the game is paused we want to start using frame advance. The default key is "N". Tap N and the game will move forward one frame at a time. Take it slow and you won't miss a thing. Note that if you press while the game is not paused, it will automatically pause the game for you. Handy.

Don't forget that we can also input control commands while using Frame Advance.
For example, to move your character to the right while paused, you'd simply hold down on the key and tap N.
Don't let go of the key or you'll stop walking. To get the whole animation, make sure the key is always held before you tap N.

Every time the sprite you're trying to rip changes, simply use Alt + PrintScreen on your keyboard to take a screenshot, then paste it into your graphics editor. Or, you can use the Screenshot hotkey - the default is F12.

Using this method, tools like Animget are totally unnecessary, as there is literally no chance of missing a single frame.

3) VDP1 Debug

This emulator even has a sprite viewer! To use it, go to Debug > VDP1. As expected, most sprites are in a ton of pieces, but with this, nothing is out of your reach. Just make sure not to copy the image directly from the viewer; instead, click Save as bitmap. Unfortunately you have to do this for each. Individual. Piece. It's a pain, but at least you can rip everything with this.

Even more annoying, the BMP images it produces seem to be a bit glitchy. My preferred graphics editor (Paint Shop Pro 7) won't open them at all, and in Photoshop they seem to open with a black background, which makes them useless for a characters like those in Guardian Heroes with black outlines. However, when I open them in my browser (Chrome) they do appear without black background, so they're not totally useless.

Oh, and you can click Refresh to have the game advance one frame in the background.

I'm glad this feature exists, but in all honesty, it's easier to use GL Intercept instead - that way you get everything all at once, without the glitches.

By the way, there are a lot of other tools under the Debug menu, but don't expect any of them to help with sprite ripping. VDP2 kind of seems like it might be a background viewer, but I haven't been able to get it to work, if that even is what it does.

III. Advanced Sprite Ripping with GLIntercept

As described in my Desmume DS ripping tutorial, GL Intercept is a program that intercepts the data displayed by OpenGL. And hey, guess what - Yabause has an OpenGL option! It's disabled by default, but that's ok. To change it, you need only to go Config > Settings, click the Video tab, and change the "Video Core" dropdown from "Software Video Interface" to "OpenGL Video Interface".

If Yabause-rr is still running, close it first. Then, download GLIntercept from here. Inside the zip file, find the "ManualInstall" folder, then the "GLIntercept_1_1_0" folder. Extract everything inside that folder to the location where your Yabause.exe is located. See the image below for reference.

Next, open the gliConfig.ini file with Notepad or any text editor; find the line that says ImageIcon { Enabled=True; and change the "True" to "False". See below.

Then save and exit Notepad. Without doing this step, the program will create unnecessary .jpg thumbnails of each image it dumps, slowing things down considerably and making a big mess.

If you did everything right, GLIntercept will now be active as long as you use the OpenGL renderer in Yabause. So what does it do? Well, it intercepts all the graphics data displayed by OpenGL. Get it? Once active, GLI will create an "Images" folder located in the Yabause folder, and will save every bit of graphics data that appears in-game to that folder, as a .png file.

So, run Yabause, activate Software Video Interface, load your ISO, and get to a point where you're ready to start ripping. Then pause the emulation, and switch to OpenGL. Use frame advance (N key) a few times, and GLI will start to work its magic, creating the Images folder and saving a bunch of images into it. Each time a character or object changes in-game, it will dump a new file into the Images folder. Here's my folder, a few frames after enabling OpenGL in Guardian Heroes.

Unlike Desmume, Yabause puts pretty much all the graphics in a single image. Here's a closer look at one of those.

All the sprites, as well as the background, all in a single image. For Guardian Heroes, these are pretty easy to assemble, especially when paired with a screenshot for reference. Be sure to delete old images when you're done with them so the folder doesn't get cluttered.

Here's another example from the game Princess Crown. The background is jumbled (but still pretty easy to assemble if you wanted to) and all the character sprite pieces are clear as day.

That's really all there is to GLIntercept. You should switch back to Software Video Interface any time the game isn't paused, as having GLI active will slow down the emulation and create a huge amount of files in the Images folder, and you don't want that.

GLIntercept also works with any other emulators that use OpenGL for 3D or 2D graphics, so try it out!

That's all for the Saturn tutorial! Feel free to comment on the forums, or contact me at neuropod@gmail.com. Hope you liked it!