03-25-2010, 10:25 AM
********************* TheouAegis' Useful Genesis Ripping Tip *********************
Alright, well, this morning I decided to try using a tile viewer to rip Urban Strike. I was hoping it would be cut and dry like the GeGeGe no Kitarou game on the SNES which so handily preloaded sprites. Nope, not the case with Urban Strike. What you see on the screen is what you get in the tiles, basically. However, some sprites were actually preloaded, such as the helicopters' rotors and background tiles (the land ones). This gave me an idea.
As anyone that's tried ripping Genesis sprites knows, Genesis programmers loved using full black instead of off-black, which Nintendo I guess encouraged. Coupled with the lack of clearly defined layers in the Genesis, this makes layer ripping impractical due to many sprite outlines being in full black like the delayered background. So, I devised a workaround for this.
What You Will Need:
*A mainstream emulator like Kega Fusion or DGen (or what works best for you)
*YY-CHR (a very nice tile editor)
*a ROM image of the game you want to rip
Optional Components
*Kega Fusion (it has a built-in AVI recorder
*VirtualDub (Kega's AVI's are recorded at 2x size, which isn't submittable here)
*AVI editor preferably with pruning functions (i.e., take non-repeating frames)
WARNING: This will not work with tiles that get reloaded into the video memory. Also, clearing the video memory via actions like bringing up a pause menu can potentially reset tiles you have altered with my method. As such, it is primarily for blocking out background tiles and preloaded or overlapping sprites (such as the rotors in the Strike series).
Load up the game in the emulator and find the spot you want to rip from. Save the state. The file will probably have a .GS* extension, where the asterisk is either an 'x' or a number from 0 to 9, depending on the emulator. Note: Kega Fusion and DGen use the same state format, so you can load a DGen state into Kega Fusion by using the "Load State As..." option in KF.
Now load YY-CHR and open the state file you just saved. Make sure the decoder drop-down menu is set to "4BPP MSX (/Genesis)". Scroll down and find some numbers or letters (or parts of numbers and letters, since some games are programmed to combine tops of some letters and numbers with bottoms of others, like an old analog alarm clock). Press + or - until the numbers/letters become clearly readable and are entirely within their 8x8 box (set the view size to "16x" and click on a tile to zoom in on its 8x8 box).
Once you're sure enough everything's lined up right (easier said than done), scroll through the tiles until you find the background tiles. These are usually clumped together. On a Genesis, these can be hard to distinguish from extra code, especially on games with poor graphics (e.g., Urban Strike, et al). The best advice I can give here is to look for a clump of tiles that don't have big, straight lines running through them. If you haven't already set up your palette, this step will be much more difficult.
Now, here's my trick. Once you found the tiles for the backgrounds, go to the palette picker on the right side. Of the 32 usable colors, left-click on one that's not on the far left (the transparent color). Set your view size to "1x" or "2x" and move the tiles so only the background tiles are in view. Now use the Quadrangle (fill) tool to completely cover the background tiles. You don't want to leave any pixels missed, but don't fret over it as it will be easy to fix.
Once you're done covering the background tiles, click the "Save" icon (the yellow floppy disk). Warning: Make a backup copy of your save states before you save any changes you make in YY-CHR. Go back to your emulator and load the state. If you did everything correctly, the background tiles and only the background tiles should be one uniform, non-black color. If you missed any pixels or tiles, it will be very obvious. In such a case, just go back to YY-CHR and touch-up the tiles (don't forget to save!).
Now when you take screenshots or video screen captures of the game, everything will be on a colored background instead of a black background. For skies and such that are only one or two colors, you don't need to worry about coloring them this way. Basically, you just want to limit your screenshots to the sprite layer and no more than four unused colors.
I took this trick one step further when ripping Urban Strike. While I could easily rip every frame of animation with the helicopter and its rotors, this would take waaaaaaaay too long, make the sprite sheet's file size waaaaaaaay too big, and make using the sprite sheet waaaaaaaaaay too difficult for anyone who wanted to use it. And since Urban Strike's programmers didn't preload sprites, copying from the tile viewer wouldn't be efficient either. So what I did was find the tiles for the helicopter rotors and fill them in (with Quadrangle (fill) tool. Then when I went back to the game, the helicopter no longer had its rotor. I could then use Kega's AVI logger to record every frame of the helicopter's sprite without the rotors getting in the way!
A Note On Deleting and Filling Tiles in YY-CHR: There are two methods I mentioned in this guide, which should be pretty obvious, but I will explain them briefly anyway. You can edit out tiles completely in one of two ways -- either use a (fill) tool on the right half of YY-CHR or select and delete with your DEL key on the left half of YY-CHR. Using a (fill) tool will leave the tile in the game, but as whatever color you picked to fill it with. If you actually delete a tile, it would be treated as using a (fill) tool with the transparent color. As such, tiles that get reloaded automatically (e.g., the helipads in Urban Strike) will always be reset regardless of which method you use. More importantly, deleting a tile will let you see any tiles drawn below it in the game, but deleting a background tile will result in a solid black tile in its place (unless your emulator's set to a different color or you hack the rom).
Alright, well, this morning I decided to try using a tile viewer to rip Urban Strike. I was hoping it would be cut and dry like the GeGeGe no Kitarou game on the SNES which so handily preloaded sprites. Nope, not the case with Urban Strike. What you see on the screen is what you get in the tiles, basically. However, some sprites were actually preloaded, such as the helicopters' rotors and background tiles (the land ones). This gave me an idea.
As anyone that's tried ripping Genesis sprites knows, Genesis programmers loved using full black instead of off-black, which Nintendo I guess encouraged. Coupled with the lack of clearly defined layers in the Genesis, this makes layer ripping impractical due to many sprite outlines being in full black like the delayered background. So, I devised a workaround for this.
What You Will Need:
*A mainstream emulator like Kega Fusion or DGen (or what works best for you)
*YY-CHR (a very nice tile editor)
*a ROM image of the game you want to rip
Optional Components
*Kega Fusion (it has a built-in AVI recorder
*VirtualDub (Kega's AVI's are recorded at 2x size, which isn't submittable here)
*AVI editor preferably with pruning functions (i.e., take non-repeating frames)
WARNING: This will not work with tiles that get reloaded into the video memory. Also, clearing the video memory via actions like bringing up a pause menu can potentially reset tiles you have altered with my method. As such, it is primarily for blocking out background tiles and preloaded or overlapping sprites (such as the rotors in the Strike series).
Load up the game in the emulator and find the spot you want to rip from. Save the state. The file will probably have a .GS* extension, where the asterisk is either an 'x' or a number from 0 to 9, depending on the emulator. Note: Kega Fusion and DGen use the same state format, so you can load a DGen state into Kega Fusion by using the "Load State As..." option in KF.
Now load YY-CHR and open the state file you just saved. Make sure the decoder drop-down menu is set to "4BPP MSX (/Genesis)". Scroll down and find some numbers or letters (or parts of numbers and letters, since some games are programmed to combine tops of some letters and numbers with bottoms of others, like an old analog alarm clock). Press + or - until the numbers/letters become clearly readable and are entirely within their 8x8 box (set the view size to "16x" and click on a tile to zoom in on its 8x8 box).
Once you're sure enough everything's lined up right (easier said than done), scroll through the tiles until you find the background tiles. These are usually clumped together. On a Genesis, these can be hard to distinguish from extra code, especially on games with poor graphics (e.g., Urban Strike, et al). The best advice I can give here is to look for a clump of tiles that don't have big, straight lines running through them. If you haven't already set up your palette, this step will be much more difficult.
Now, here's my trick. Once you found the tiles for the backgrounds, go to the palette picker on the right side. Of the 32 usable colors, left-click on one that's not on the far left (the transparent color). Set your view size to "1x" or "2x" and move the tiles so only the background tiles are in view. Now use the Quadrangle (fill) tool to completely cover the background tiles. You don't want to leave any pixels missed, but don't fret over it as it will be easy to fix.
Once you're done covering the background tiles, click the "Save" icon (the yellow floppy disk). Warning: Make a backup copy of your save states before you save any changes you make in YY-CHR. Go back to your emulator and load the state. If you did everything correctly, the background tiles and only the background tiles should be one uniform, non-black color. If you missed any pixels or tiles, it will be very obvious. In such a case, just go back to YY-CHR and touch-up the tiles (don't forget to save!).
Now when you take screenshots or video screen captures of the game, everything will be on a colored background instead of a black background. For skies and such that are only one or two colors, you don't need to worry about coloring them this way. Basically, you just want to limit your screenshots to the sprite layer and no more than four unused colors.
I took this trick one step further when ripping Urban Strike. While I could easily rip every frame of animation with the helicopter and its rotors, this would take waaaaaaaay too long, make the sprite sheet's file size waaaaaaaay too big, and make using the sprite sheet waaaaaaaaaay too difficult for anyone who wanted to use it. And since Urban Strike's programmers didn't preload sprites, copying from the tile viewer wouldn't be efficient either. So what I did was find the tiles for the helicopter rotors and fill them in (with Quadrangle (fill) tool. Then when I went back to the game, the helicopter no longer had its rotor. I could then use Kega's AVI logger to record every frame of the helicopter's sprite without the rotors getting in the way!
A Note On Deleting and Filling Tiles in YY-CHR: There are two methods I mentioned in this guide, which should be pretty obvious, but I will explain them briefly anyway. You can edit out tiles completely in one of two ways -- either use a (fill) tool on the right half of YY-CHR or select and delete with your DEL key on the left half of YY-CHR. Using a (fill) tool will leave the tile in the game, but as whatever color you picked to fill it with. If you actually delete a tile, it would be treated as using a (fill) tool with the transparent color. As such, tiles that get reloaded automatically (e.g., the helipads in Urban Strike) will always be reset regardless of which method you use. More importantly, deleting a tile will let you see any tiles drawn below it in the game, but deleting a background tile will result in a solid black tile in its place (unless your emulator's set to a different color or you hack the rom).