D-Bug & Automation Forum
D-Bug & Automation Forum >> Coding/Hardware >> Graphics Rip Request (for pc remake) - Please Help

Message started by Heavy Stylus on 20.05.10 at 08:19:26

Title: Pointers on how to rip graphics
Post by ggn on 21.05.10 at 10:41:17
Ok, here's some tips on how to rip graphics from games (in as much as a logical order as I can):

  • Using Crackart's "file crack", you can load a file and show it on screen, change line width (so if the game has 16x16 sprites interleaved, you can see them if you set an width of 8), hunt for the palette, etc.
  • Similarly, "disk crack" on the same program can load disk tracks using the same interface more or less.
  • It is often the case that graphics data will be packed instead of laid raw on files or disk. If the game is on files, try to unpack the files using a program like New Depack first.
  • In some other cases, the data will be packed using an unknown packer (or obscured so programs like New Depack can't pick it up). Then you can (for example) use the Steem Debug version, load the game, start playing, then stop emulation. Then go to the boiler room, open a memory window, make sure it is set on "memory" and not "instruction", point it to address 0 and dump 512 (or 1024k) of memory into a file. Then load it on Crackart.
  • How to rip the palette: It's a very rare occasion that the palette will be bundled close to the graphics. Again Steem Debug can come to the rescue. Just play the game, and when the palette you want to rip appears (the gfx you want to rip will be using it), just stop emulation. Then open a memory window and point it to ff8240. There you will find the 16 palette entries, with the added bonus of the colors they represent on the memory window :)
  • Argh! You did the above hint but you got a totally wrong palette? Then the game is most possibly using a raster split to show different colors to different screen areas (for example main playfield and status bar). just do what you did above, and then with the memory window open on ff8240, right click just left of the address on the column "Mon". Then select "Monitor writes to->" and then "ff8240.w". Now go to the boiler room window and make sure "Monitor->Stop on activation" is selected. Normally on the bottom of this menu bar you will see the watch point you set (ff8240.w - WRITE). Then start emulation again. Almost immediately the emulation will stop again and a alert box will tell you that someone tried to write on the palette. Just flip to the memory window again and look at the palette. It should be different than the one you noted down. Just keep restarting emulation for a few times and notice how the palettes change. Then you need to judge for yourself which is the correct one and use it :)
  • Another thing you can try with Steem Debug is that you can change the screen address, which has immediate effect. I.e. whatever value you enter, the memory contents will be shown when you press enter. Don't be afraid, as this is perfectly safe to do and it won't make the game crash. There is a slight chance that the graphics are stored there in viewable format, so maybe you can simply printscreen them :)
  • Do you have the gfx on screen, but they look wrong, as if some shadows appear on them? This might actually be bitplane shifting. Try adding +2, +4 and +6 to the address (or offset if you're using something like crackart) in succession - it's very likely that the gfx will be shown properly then.
  • Most of the above stuff applies when the graphics are 16 colors i.e. 4 bitplanes. If the game stores the data in fewer bitplanes (to preserve memory and gain speed) you will see them squashed and wrongly shown using the above methods. Using custom made programs to parse the data (like I usually do) or ripper programs like the Ultimate Cartridge is a necessity in this case.

Got any questions I haven't answered or wish to contribute to the thread? By all means do :)

D-Bug & Automation Forum » Powered by YaBB 2.6.0!
YaBB Forum Software © 2000-2021. All Rights Reserved.