Page 1 of 6

Getting libHSPlasma and PlasmaShop

PostPosted: Sun Jan 11, 2009 9:55 am
by Zrax
Current Tools
  • PlasmaShop
    • PlasmaShop - IDE for Plasma-related files
    • PrpShop - Advanced graphical PRP file editor
    • VaultShop - Offline Vault Manager for Uru Prime and PotS (includes SDL and .sav file editing support!)
    • Screenshots!
  • libHSPlasma Tools
    • PageConvert - Converts PRPs from one Plasma version to another (not completely supported)
    • PlasmaCrypt - Encrypts and Decrypts files from Plasma engine formats: Xtea (Uru), XXtea (MOUL), AES (Myst 5)
    • PlasmaSum - Update and view .SUM files
    • prcc / prcdc - Compile and decompile XML source for PRPs or extracted PRP objects
    • prpmod - Add/Delete/Extract individual objects from PRP files in either PRC or raw format
    • prpgrep - Find objects within PRP files
    • Prp2Obj - Convert a PRP or objects within a PRP to Wavefront .obj format (geometry and normals only -- no material information is converted)
    • PrpPack - Extract, create or add objects from/to PRP files
    • PyPack - Extract, create or add compiled python (pyc) files to python .pak files
    • PyHSPlasma - A Python interface wrapper for libHSPlasma
  • PyHSPlasma Scripts
    • copyage - (Branan) copies an age and adjusts it with a new name and sequence prefix
    • po2dds - Convert an extracted plMipmap to a .dds file
    • prp-checkfiles - (Diafero) Checks a set of PRP files for libHSPlasma read/write errors
    • prp-extractobject - (Diafero) Extracts a raw object from a PRP file
    • prp-listobjects - (Diafero) Lists all the Scene Objects (or a specified type) in a PRP file
    • sounddecompress/wxSoundDecompress - (Deledrius) Decompress a game's .ogg files properly for Plasma without depending on the Windows executables
    • tracekey - Look for references to a key within a PRP file


Windows


Windows (Source)


Linux / Mac OSX86 (Source, supports both 32- and 64-bit)

Re: Geting libPlasma and PlasmaShop

PostPosted: Sun Jan 11, 2009 4:22 pm
by Chacal
Does PlasmaShop use the current libPlasma?

Re: Geting libPlasma and PlasmaShop

PostPosted: Sun Jan 11, 2009 4:50 pm
by Zrax
The programs in PlasmaShop 3.x do, but those in PlasmaShop 2.x do not... The Plasma.dll required for the progams in PlasmaShop 3.x (as well as the compiled Qt4 dlls) are included in the Windows compiled version though, so the zip file should have everything you need (except the VS2008 runtime)

Re: Geting libPlasma and PlasmaShop

PostPosted: Mon Jan 12, 2009 5:02 am
by diafero
Wow, I only now found that PlasmaShop SVN and noticed you used Qt for it :)
I also use Qt a lot and really like it. I'll try to compile the latest SVN once I'm back home.

EDIT: Ok, got them compiling. It was a bit difficult though as PlasmaShop expected the libPlasma.so file in ../Plama/bin (seen from the PlasmaShop base directory), but it is in ../Plasma/core/lib/, so I had to create the bin directory and add a symlink. Now PrpShop and VaultShop work, and especially the latter is really great - finally a tool to easily browse through and edit the offline vaults :)
PrpShop seems to be like a PageEditor written in Qt and using GUIs for the objects instead of XML - is one of them meant to replace the other? Now that I am used to PageEditor I prefer it to the GUI, but the latter allows me to open different ages at once, while PageEditor closes the files I have currently opened when I choose a new one. In addition, PageEditor has no way to change the name of ages, pages or objects (at least I found none so far).
I am a bit confused though because I expected to find some tool using the Python interface of libPlasma, but this is obviously still in a very early state and not yet usable? Is there a SVN for that one somewhere?

Re: Geting libPlasma and PlasmaShop

PostPosted: Mon Jan 12, 2009 11:24 am
by Zrax
diafero wrote:Ok, got them compiling. It was a bit difficult though as PlasmaShop expected the libPlasma.so file in ../Plama/bin (seen from the PlasmaShop base directory), but it is in ../Plasma/core/lib/, so I had to create the bin directory and add a symlink.

Oops, it should actually look in core/lib, but I guess it always worked for me since I always use make install before makeing PlasmaShop... I'll go ahead and fix that. Thanks!

diafero wrote:PrpShop seems to be like a PageEditor written in Qt and using GUIs for the objects instead of XML - is one of them meant to replace the other? Now that I am used to PageEditor I prefer it to the GUI, but the latter allows me to open different ages at once, while PageEditor closes the files I have currently opened when I choose a new one. In addition, PageEditor has no way to change the name of ages, pages or objects (at least I found none so far).

PrpShop is meant to replace PrpTool, actually (and add saving support to it). PageEditor was written by Paradox, not me, so it's up to him whether he'll keep supporting it or not. Personally, I prefer a graphical PRP editor for several reasons, including that it will (eventually) support previewing graphical data (textures and geometry), and that flags can be edited by name rather than by a hex value like PRC frequently forces you to do. However, I really don't see any reason for one tool to replace the other, and I expect both will continue to coexist peacefully :).

diafero wrote:I am a bit confused though because I expected to find some tool using the Python interface of libPlasma, but this is obviously still in a very early state and not yet usable? Is there a SVN for that one somewhere?

The PyPlasma python module should be available in your build, which provides the python interface to the python interpreter. This can be used in your own scripts, but there isn't that much available yet that makes use of it. There's an example python script at libPlasma/Python/examples/po2dds.py, and there was also discussion at one point about using PyPlasma as a backend for PyPRP 2.0, but I think Lontahv is the only one who's done any work on the latter so far.

Re: Geting libPlasma and PlasmaShop

PostPosted: Mon Jan 12, 2009 11:31 am
by Chacal
I think both prpShop and Page Editor will continue being useful.
PageEditor's XML format is the greatest thing since sliced bread, and the ability to perform batch transforms on a bunch of PRC files is valuable for people preparing distributions.
PrpShop will be useful for hackers working on their own files.

Re: Geting libPlasma and PlasmaShop

PostPosted: Mon Jan 12, 2009 12:45 pm
by diafero
PrpShop is meant to replace PrpTool, actually (and add saving support to it). PageEditor was written by Paradox, not me, so it's up to him whether he'll keep supporting it or not. Personally, I prefer a graphical PRP editor for several reasons, including that it will (eventually) support previewing graphical data (textures and geometry), and that flags can be edited by name rather than by a hex value like PRC frequently forces you to do. However, I really don't see any reason for one tool to replace the other, and I expect both will continue to coexist peacefully :).
I think both prpShop and Page Editor will continue being useful.
Ok, thanks for the explanation. Yes, both tools are very useful for their own purposes, but since they are so similar, and since one lives within the core libPlasma SVN and the other has it's own, I wondered why that is. But as PageEditor doesn't need much code as all the XML stuff is already in libPlasma, it's very useful for testing the library and doing some simple manipulations - and for some data types, I also find the XML much easier to read than the GUI ;-). Of course, for the flags, the GUI is much more convenient. I'll just see them as two different approaches to prp editing, one being more "in touch" with the library while the other is easier to use and discoverable (at least I hope you plan to make the GUI self-explaining).

Re: Geting libPlasma and PlasmaShop

PostPosted: Mon Jan 12, 2009 1:32 pm
by Zrax
Ok, I've updated the makefiles for Linux/OSX -- they should now build everything into bin/ like the Windows build does. The make install will still install the programs and libs to the same places as before though.

Re: Geting libPlasma and PlasmaShop

PostPosted: Mon Jan 12, 2009 3:29 pm
by Lontahv
PyPlasma is basically exactly the same in use as libPlasma. dir() can help you with seeing all the class functions and members you can use.

I started learning how to use libPlasma by looking at Prp2Obj.cpp. This application shows off how to open and read prp files. The functions should match up pretty well with the PyPlasma functions. The only big difference I'd found is that PyPlasma often uses class member variables instead of get* and set* functions. Otherwise what Zrax has implemented so far into the API should be almost identical to using libPlasma with C++.

Re: Geting libPlasma and PlasmaShop

PostPosted: Tue Jan 13, 2009 11:10 am
by diafero
Zrax wrote:Ok, I've updated the makefiles for Linux/OSX -- they should now build everything into bin/ like the Windows build does. The make install will still install the programs and libs to the same places as before though.

It seems you forgot to add some binaries to the ignore list, for example "mkmfs" or "dsData".

EDIT: Besides, things work without the symlink now.