The VG Resource

Full Version: Harvest Moon: Animal Parade .CMP Files
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I really want to rip the models from this game, but I haven't had any luck since it uses .cmp files. Not much comes up when I look it up here, and a quick Google search gives me results from websites that I don't really trust.

I tried using RTB's quickbms script for Kirby and the Forgotten Land .cmp files, but it didn't work for the files ripped from this game. They came out as blank 0kb files.

I also tried to use this for the .cmps without any luck either, probably because it's for the Sega Saturn and not the Wii:
https://github.com/MrConan1/CMP_DECMPRESS

This forum post says that .cmp files can be converted to a .pak and then extracted using GBA Tools and Noesis, but I don't even know where to start figuring out how to use this tool, or if it would even work for this game's files since, again, it's for the Wii and this tool is for the GBA.

There's been other threads asking for help with this game as well, but they're old and have not received any responses.

If it helps, according to this tumblr post each character uses multiple .cmp files, which might be why extracting them with the other tools didn't work.
try BrawlCrate perhaps?
(03-17-2025, 02:34 AM)applecuckoo Wrote: [ -> ]try BrawlCrate perhaps?

[Image: Untitled.png]

I just tried that, it doesn't seem support .cmp files, since when I click on one, nothing shows up.
I looked in the Discord server to see if I could find anything and came across this thread, which led me to 3D Ripper DX, but it still didn't work. I followed the tutorial Furvy provided, even downloading the version of Dolphin mentioned in the tutorial (2.0 RC1), but it still gave me an "unable to create process" error.

I saw that some people on DeviantArt were able to rip the models (1, 2), but the first person hasn't been active since 2014, and the second person doesn't seem to be interested in Harvest Moon anymore.
I found a pretty cool dog, at least. I didn't have much luck generating faces with either Model Researcher or hex2obj (maybe got close but didn't land on the right settings), but it looks like the indices are right above the vertices (the long 00 01 00 01 00 01 00 02 00 02 00 02 ... section that gets decoded as an alphabet wall).

After the vertices, there's a small set of zeroes and then it seems the UVs or maybe normals are right below that.

I attached a few sample .cmp files including the PET000.cmp I tried. Looks like textures might be stored in a separate .ptex file.

Ninja Ripper seems to work alright, if nothing else, not T-posed though. I set both it and Dolphin graphics settings to use directx 11. I tried version 1.7.1 with Dolphin 5.0, and got some geometry but no textures. Here's a screenshot of the male player ripped from the character creator menu. Good luck, I would guess people screen ripped models in the past but who knows.
Here's a little more info about .cmp attached. Only thing that's still a little weird are the UVs. The UVs shown highlighted are correct and match Ninja Ripper's output, but there are fewer of them in the raw file, so the last however many don't have the right values. Seems like maybe some might be reused or mirrored somehow, or I'm looking at it wrong. Might be able to transfer UVs from a screen ripped model to the t-posed model, if nothing else for now.

For textures I tested dumping from Dolphin or RenderDoc works well. RenderDoc meshes are about the same posed results as Ninja Ripper.
I was just missing the UVs indices before. Here's a couple of screenshots of the pattern for the UVs indices and normals indices, for PET000.

Here's the Harvest King as a finished example. Only thing that is a little tricky if pulling these out manually is for the face, it contains multiple components (eyes, eyebrows, mouth, face) using different materials. They separated the indices for each of those individual components with a bunch of zeroes as padding in-between, so you need to remove those zeroes and process them altogether as one block or else the vertices won't match up when you try to process them individually.