Ripping graphics and sprites from a PSP game

Discussion in 'PSP - Hacking & Homebrew' started by xPearse, Jan 5, 2015.

  1. xPearse
    OP

    xPearse Advanced Member

    Newcomer
    82
    38
    May 5, 2014
    Belfast, Northern Ireland
    Can anyone help me out here, I'd like to rip the sprites from this PSP game here (Higurashi Daybreak Portable Mega Edition) but don't know how to go about doing that. Any help would be much appreciated.
     
  2. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,698
    9,568
    Nov 21, 2005
    United Kingdom
    It works much the same as any other console, afraid this will be generic rather than game specific at this point

    1) You cut them out of screenshots
    2) You dump them from VRAM, possibly with the aid of cheats. Usually with an emulator but you have some debug/memory reading in game options. http://ppsspp.org/ is actually pretty good, especially if you are hacking rather than playing (its debug options are not bad for the state of the emulator development)
    3) You rip them from the iso.


    1) is horribly tedious and nobody wants to do it that way, however sometimes it is useful if the sprites are constructed from lots of things. If your emulator/cheats work well you might also be able to disable graphics layers to make this easier.

    2) If you can dump the video memory you can either try emulator debugging options or run it through a tile viewer of its own. Cheats to do things would be things like cheats to make you have weapons, characters, enemies... you would not see until later in the game face you by being forced to.

    3) Arguably the best way to do things. First you want something to peer into the PSP iso file, most would not look much further than UMDgen for poking around PSP games and I am inclined to agree.

    PSP games are odd. Sometimes they stick close to the hardware and leave you needing something like http://code.google.com/p/tiledggd/ , sometimes they come as a very common format (quite literally something like PNG or BMP, especially in visual novels and things that started out life as the same) and other times they are some intermediary format like we deal with at most other times in ROM hacking.

    Nothing stopping you from combining a few methods -- if you find the files for say the end boss but can not decode them then you can sometimes overwrite the basic enemies and then have the end boss display when the game thinks it is just displaying the normal enemy before dumping the lot with a normal emulator VRAM dump.

    I should also note that this is a 3d game so you might not be seeing normal sprites, model ripping is certainly doable but it tends not to net things as nice as sprite sheets.
     
  3. xPearse
    OP

    xPearse Advanced Member

    Newcomer
    82
    38
    May 5, 2014
    Belfast, Northern Ireland
    Thanks, and I'm only looking for the sprites. I have no real interest in the 3d models. But, any clue on how I would rip them with UMDgen? Because all I see is extracting the files, which I can do with any image mounter. Also, I know people can search for the images and sprites in a image/tile viewer using the offsets and such, and I see one here, so what should I do? I haven't done this sort of stuff before so I'm kinda confused.
    [​IMG]
     
    Pablitox likes this.
  4. Pablitox

    Pablitox GBAtemp Advanced Fan

    Member
    737
    376
    Oct 18, 2011
    Argentina
    I'm interested in this too, so I'll watch this thread closely :P. I thought of using ppsspp's debugger, but I can't save the images or whatsoever.
     
  5. xPearse
    OP

    xPearse Advanced Member

    Newcomer
    82
    38
    May 5, 2014
    Belfast, Northern Ireland
    Yo, can anyone help me out on this? I've never done this sort of things before so some help would be greatly appreciated. And there was also a .pck file so I'm wondering how would I extract/un-compress that since the png's are probably in there.
     
    Pablitox likes this.
  6. zero_g_monkey

    zero_g_monkey GBAtemp Fan

    Member
    332
    203
    Aug 9, 2013
    United States
    gzpack.pck <- First you are gonna have to figure out how to extract all the files stored in this archive.
    After that, you need to figure out which files are what from the ones you extracted. It takes time and sometimes it is an obscure format that nobody has messed with before. That is basically the step you are at right this moment. Getting all those files out.
     
  7. flame1234

    flame1234 GBAtemp Advanced Fan

    Member
    727
    409
    May 17, 2009
    United States
    It knows the memory address where the texture is.
    It certainly knows other graphic-related things like the mode (maybe it matters)?
    And then it must know how to convert the texture into the image you see in the texture window.
    Maybe try asking about it over at PPSSPP forums.
    I'm interested in the answer too, and I'm not seeing it in this forum.

    FAST6191, who is the best GBAtemp staffer ever, put together this document regarding everything one might need to know for NDS translation:
    http://gbatemp.net/threads/gbatemp-rom-hacking-documentation-project-new-2014-edition-out.73394/
    It has a graphics section including textures. I don't think you're going to find anything valuable there (I haven't looked), but it's worth a shot.

    Simplest will probably be, once you know what you are doing, to get the texture in memory in PPSSPP, then dump the memory and pull the texture from there. It obviates the need to decode anything of the game's format. I can't give you an exact process because I haven't done it and I don't know how textures work.

    Maybe just go to that address and see what the memory looks like.
     
  8. Dan_Tsukasa

    Dan_Tsukasa GBAtemp Regular

    Member
    172
    43
    Oct 14, 2014
    Tokyo Japan
    Another way you could do it is grab this version of PPSSPP (ppsspp-v0.9.9.1-279-g375e102-windows-x86) as this one has support for direct X9, switching it on is dead simple, in later versions of PPSSPP the option GPUBACKEND inside of config.ini no longer exists, wheras in this version just change it to 1 and you're good.

    After that you can just use either texmod or Ninjaripper to rip the graphics, the colours will be a bit off at first but if you get that far I'm more than happy to explain how to get the colours looking correct, I've even made a photoshop action for it (not sure how to share custom photoshop actions but I'll have a look and upload it).

    That ability to view the textures in the ram is nice, I wish you were able to save them from that, even screenprinting is pointless from that window since its so small.
     
  9. xPearse
    OP

    xPearse Advanced Member

    Newcomer
    82
    38
    May 5, 2014
    Belfast, Northern Ireland
    I'll check over on the PPSSPP forums also for help and an answer.

    Yeah, that's the thing. I have no clue on how to do that, and I've tried a few programs people mentioned on the net when I googled the thing but I just got errors when I used them.

    Well, if that method can work then I wouldn't have a problem doing it that way. Fixing the colors won't take long anyway so I'll try it out.
     
  10. Dan_Tsukasa

    Dan_Tsukasa GBAtemp Regular

    Member
    172
    43
    Oct 14, 2014
    Tokyo Japan
    Let me know how it goes, here is my photoshop action as promised.

    Texmod is easy to find online, as is NinjaRipper, Personally I prefer Ninja ripper as it'll grab all textures in memory at that moment, wheras Texmod forces you to scroll through the texture you want in order to extract it, its a little longwinded honestly.
     

    Attached Files:

    Pablitox likes this.
  11. xPearse
    OP

    xPearse Advanced Member

    Newcomer
    82
    38
    May 5, 2014
    Belfast, Northern Ireland
    Thanks, I attached ninjaripper to the exe and played around for a while but i checked the exported folder afterwards and it was empty. Maybe I did something wrong, is there an exact process?
     
  12. Dan_Tsukasa

    Dan_Tsukasa GBAtemp Regular

    Member
    172
    43
    Oct 14, 2014
    Tokyo Japan
    Yup, you have to use one of the keys at the bottom of Ninja Ripper when you want to rip (I think by default its 2 F-Keys).

    it won't rip every frame as it goes, you have to tell it when to do a rip, it works the same as all other ripping software.

    Theres a Key for Model Rip and a Key for texture rip (model rip will get textures along with the models by the way), make sure you pick a hotkey that the emulator isn't using for something else though, otherwise sometimes its a bit of a pain when another window pops up.

    Outside of that, can you confirm that you have the correct PPSSPP version I mentioned, and that you've changed the GPUBackend, and then it should show you DIRECT X 9 under the PPSSPP Logo when the emulator first starts up. (or using dx9 or something like this, if it shows nothing its using OpenGL).
     
    Pablitox likes this.
  13. xPearse
    OP

    xPearse Advanced Member

    Newcomer
    82
    38
    May 5, 2014
    Belfast, Northern Ireland
    Ah, stupid me. I forgot to do that, although I do have the right version and it loads up as DIRECT X 9 instead of Open GL. However, for some reason buttons and parts of the gui are missing. Is that normal? Also, I tested ninjaripper on the char select screen and it actually worked. However, the emulated froze and didn't respond. Is that also normal?
    [​IMG]
     
    Pablitox likes this.
  14. Dan_Tsukasa

    Dan_Tsukasa GBAtemp Regular

    Member
    172
    43
    Oct 14, 2014
    Tokyo Japan
    The emulator generally freezes up for a few moments yes, depends on the speed of your machine, along with how much there is to grab onscreen. Grabbing models takes a shorter time than textures.
    Also make sure that the key you have assigned to rip with, isn't assigned to something else in PPSSPP (when I first did it I assigned it accidentily to the pause emulation button... may have also been what you did, its a bit of trial and error).
    The best thing to do is not wait until you get to the area you want, but just do it at any screen before that with graphics, its a quicker way of testing if things work really.

    Buttons and parts of the UI missing are a sucky thing but its a byproduct of DirectX still not being fully tested yet, the graphics should still load, but just not be onscreen, so you might get lucky with it.

    Were you okei with the photoshop action I provided, if you don't use photoshop I can explain it to you so you can do it in gimp instead (outside of those 2 I can't help sorry, those are what I know).
     
    Pablitox likes this.
  15. xPearse
    OP

    xPearse Advanced Member

    Newcomer
    82
    38
    May 5, 2014
    Belfast, Northern Ireland
    That's good, I should actually wait instead of closing the program in future. Anyway, about the photoshop action, worked like a charm, thanks man. Although I'm unsure on what keys aren't used by the emulator, I used F8 for textures and F1 for models. What do you generally use? Also, I guess to make things easier I could always have a save file handy so I don't have to navigate half vanished screens for ripping models and textures.
    [​IMG][​IMG]
     
  16. Dan_Tsukasa

    Dan_Tsukasa GBAtemp Regular

    Member
    172
    43
    Oct 14, 2014
    Tokyo Japan
    Right now my key for ripping Models is F8 wheras Textures is F1, but I've used it on PCSX2 since so I don't know if I changed them first or not, eitherway just find something that seems to work I guess.

    Having a save state is handy, sometimes you might have to exit and re-enter an area though, as occasionally ninja ripper doesn't detect the loaded stuff properly (I assume stuff is saved in the state perhaps?).

    Curious what other games you're planning to use this on. I've only tried it with Boku no Natsuyasumi as I wanted to compile some backgrounds, nothing else since then.
     
  17. xPearse
    OP

    xPearse Advanced Member

    Newcomer
    82
    38
    May 5, 2014
    Belfast, Northern Ireland
    Well, I've set mine to F9 for textures and F1 for models since they seem not to be used. Anyhow, I want to rip the sprites from this game and maybe another game or two in the future. Probably that Future Diary one. Also, not everything was ripped when I used the program, notably the sprites. Unless, maybe the game pre-loads them before you start the game, or I didn't wait long enough. I'm very unsure though, any help there? Could that other rip program you mentioned be of any use? And could either work the same way if I tried it say, on a PS2 game?
    [​IMG]
     
  18. Dan_Tsukasa

    Dan_Tsukasa GBAtemp Regular

    Member
    172
    43
    Oct 14, 2014
    Tokyo Japan
    They'd work the same way on a PS2 game yes, you have to remember that in regards to PPSSPP Direct X is still in development and has plenty of bugs, the only reason they ever added it at all was to allow people with older machines to use the emulator well. So its still full of bugs, the forums mention quite a few bugs, you could scour the release builds and find a newer version that supports direct X and has many bugs fixed, to my knowledge the most recent build doesn't seem to have DX9 support, or at least I was unable to find it.

    The other tool would work well too, I'd suggest trying it out and seeing what you get, its pretty simple to use, I've tried it on PCSX2 also and it worked for me there, textures from PCSX2 will have the same colour issues as from PPSSPP, this isn't because of the emulator its because Direct X memory handles colours as BGR and you're dumping from the memory itself, this is how it was explained to me at least.
     
  19. xPearse
    OP

    xPearse Advanced Member

    Newcomer
    82
    38
    May 5, 2014
    Belfast, Northern Ireland
    Thanks for the info, and I'll try that other ripper out. Also, since not everything was ripped (notably the sprites), would that be due to the way the game loads them? Or something else? Anyway, like PPSSPP, would I also need a specific version of PCSX2 to rip?
     
  20. Dan_Tsukasa

    Dan_Tsukasa GBAtemp Regular

    Member
    172
    43
    Oct 14, 2014
    Tokyo Japan
    Nope the most recent Version of PCSX2 has support for Direct X 9 and 11, try either (setting the correct thing in NinjaRipper too), some games work better in 9 than 11, just see what works for you really.
    As for why some sprites don't load, its probably just because its experimental still, so direct X doesn't load everything that its supposed to/load it correctly.