quote=ZiNgA BuRgA (This post was last modified: 10/01/2011 05:19 AM by ZiNgA BuRgA.)
old junk
Firstly I apologise for taking so long to get this out. I know some of you may have seen some themes created using this tool for quite a while; I originally had planned to release this months ago, however I got hit with more than expected workload this semester and had really little time to actually work on this.
I had some free time recently, so I thought I'd take the opportunity to try to push out a release. Unfortunately it lacks many things I wanted to have in a public release, but I guess that doesn't matter too much, maybe...
Anyway, since this is a bit of a rushed release, there's a number of "suboptimal" things done here, such as me not really checking stuff (so if you find issues, please report so I can fix :P). Sanity checking in the code really sucks, so it should be easy to stuff up the program too, but please still report these so that I know where to prioritise checks xD.
About
Rcomage is a general RCO manipulation/creation tool, which I hope, will replace RCO Editor (and potentially rcotool in the future).
It's a CLI (command-line interface) however I've provided a simple Windows GUI to save you from remembering commands (though you may need to trawl through an XML file).
It currently only has two main functions - "dump" (dumps contents of an RCO) and "compile" (compiles an RCO from a dump).
For modifying an RCO, you would dump it, modify the dump, then compile it.
A dump will consist of an XML file, which contains all the metadata of the RCO (basically, it's structure) as well as various resources, such as images, sounds etc.
How to use
Well, as mentioned above, basically dump and compile is the only thing you can do.
As for information on the XML structure, I don't really have the time to write a good guide, so I guess you'll probably just dump various RCOs to get an idea of how it works. (I'd be willing to assist if someone would write a guide for me :P)
A quick idea of the structure is shown in the readme.
!! I strongly suggest that you don't use Notepad to edit the XML files. Suggested applications include Notepad++ and Notepad2 (or your favourite text editor; most should overcome the deficiencies of Notepad).
Notes
Because I was silly when writing RCO Editor, it doesn't put in adler32 checksums for compressed images, etc, and thus, anything modified with it will generate a warning in Rcomage. Otherwise, should work fine.
Also, Sony's GimConv, which is used to convert GIM images, is a little slow, so if you choose to perform the conversion (affects both dumping and compiling), expect to wait some time...
Unknown values
If you go through dumped XML structures, you may notice a number of "unknown" labels for various objects (and some anim entries). Finding out what these values do is, unfortunately, a little time consuming and I don't really have that much time to test what each thing does. It would be great if people would volunteer to play around with these values to see what effect they have, and I can add the definitions to Rcomage. (thanks in advance )
Благодарности:
- highboy за пример кода преобразования WAV <-> VAG
- Z33 за пример кода работы с GIM и различные программы для работы с RCO; также за изучение и исследование различных форматов файлов
- создателей 7-zip за их изумительную реализацию deflate алгоритма
- всех, кто причастен к libxml2, iconv и zlib
- geohot за помощь с поддержкой PS3 RCO
- альфа-тестерам, за поиск недоработок и поддержку в создании тем
- всем, кто относится к кастомизации и написании программ для PSP (слишком много, чтобы перечислить поимённо)
- всем, кого я забыл =)
Исходный код:
Обратите внимание на форк от KaKaRoTo - Там находится модифицированная/доработанная v1.1.1
v1.1.1 (2nd June, 2010)
- Add --ini-dir option to allow specifying INI directory for the CLI
- Add version tag 0x97 as a valid PS3 tag (fixes some issues with dumping RCOs from older PS3 firmwares) [thanks to Mr Shizzy for the samples]
- Export animtable tag constants to .ini file; also fix up PS3's special MoveTo animation
- Minor modification to WAV parser - will now skip bytes if header specifies it
- Remove UTF-8 BOMs from dumped XML before the text values - seems to cause issues on some machines (and I don't think it's exactly valid anyway)
- Strip nulls from text (RCO Editor may add them)
- Replace the various "unknownInt1" name with "accelMode" - thanks to Vegetano1 for the find
v1.1.0 (3rd Apr, 2010)
- Minor message output changes
- Fixed bug where rcomage may have tried to convert non-GIM images through gimconv when dumping
- Fixed minor issue if Image/Sound/Text tree contained no subentries
- Removed option to select compression for PNG/JPG/TIF/GIF resources in GUI as it's mostly useless and may break the RCO if changed
- Add UMDFlag attribute to RcoFile tag
- Reduce the use of CDATA sections in the dumped text XML file
- Add basic VSMX decoder/encoder; add corresponding option when dumping/compiling in CLI and GUI, as well as vsmxdec and vsmxenc functions in the CLI
- Add experimental VSMX -> Javascript decompiler. This will most likely crash, but if you're lucky, it might go through and give half-readable output. Only use this if you're really interested; can only be accessed via the CLI using the --decompile option of vsmxdec
- Export some internal constants to .ini files
- Add support for UTF8 and UTF32 text in RCOs (found in PS3 RCOs); also fixed some potential character encoding issues
- Add support for Fontstyle entries (used in the sysconf PS3 RCO)
- Greatly improve handling PS3 RCO object structures (thanks goes to geohot for RCO samples)
- Add support for writing PS3 RCOs; also modify GimConv to add PS3 configuration option
v1.0.2 (7th Dec, 2009)
- statically link all libraries; also now built with MinGW so MSVC runtime no longer required
- include required DLLs with GimConv
- fixed bug in GUI where it didn't chdir across drives
- partially removed annoying auto-fill for dumping RCOs for GUI
- fixed crash where bad label reference was supplied
- add like two additional warnings
- add ability to select zlib compression options from CLI
- partial support for reading big-endian (PS3?) RCOs; it's "partial" as there are still issues - mainly object handling is mostly stuffed up
- fix regression in earlier update which broke VSMX dumping
- minor changes to XML format
- apply hack which hopefully fixes up GimConv converting from some GIMs
- and if the above still causes GimConv to freeze, added a timeout to try to not cause Rcomage to lock up as well
- added "vagenc" and "vagdec" functions if you happen to want to convert a .vag file
- added "extract" function (not 100% complete)
v1.0.1 (28th Oct, 2009)
- fix crash with WAV -> VAG conversion
- fix sound clipping issues with WAV -> VAG conversion (fix appears to work, but I really haven't looked at it much)
- added ability for compile function to read from stdin
- use \ for directory separators on Windows
- slight speedup with gimconv (no longer invokes the cmd shell)
- '--xml-only' switch for dumping removed, use '--resdir -' instead
- fix bugs relating to handling XML files with resource dumping disabled
- minor changes to messages
- GUI will attempt to use relative paths instead of always relying on absolute paths
- fix folder creation bug in GUI