Post Reply 
[PSP] Rcomage v1.1.1 - new RCO manipulation tool
Author Message
sandungas
Paradigmatic Apprentice

Posts: 21.1280
Threads: 1
Joined: 14th Apr 2007
Reputation: 1.94271
E-Pigs: 2.3632
Offline
Post: #312
RE: [PSP] Rcomage v1.1.1 - new RCO manipulation tool
(10/04/2015 06:43 PM)ZiNgA BuRgA Wrote:  You're mostly correct in your understanding.

Rcomage doesn't have a GIM parser yet, so it can't figure out what settings to use.  It currently just makes a guess from what the RCO file is - it doesn't know anything about the GIM.

A possible solution is as you mention - parse the GIM file and write the settings to the XML file.  Then the compile process would need to read in the settings and generate the correct GIM file.

A limitation of that though, is that conversions may not work so nicely as GimConv doesn't support all of them.
I think the addition of the gim type to the rcoxml is good enought by now because allows the user to modify the gim types for each image manually and then compile with rcogui from PNG--»RCO
For the gim types you can use the same gim settings you have been using in previous versions, this way the image conversion is the same than previous versions but is more flexible (and fixes partially the problem with PNG--»RCO conversions for PS3)

I made a list of options for gimconv.cfg with all the gim formats used by PSP and PS3 using different names, take a look if is correct

C Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//--------------------------------------------------------
//  Rcomage options
//--------------------------------------------------------

	//  GIM formats used by OFW RCO's

option -pspbpp8 {				// First most used GIM format in PSP
	format_style = psp
	format_endian = little
	image_format = index8
	pixel_order = faster
	limit_image_width = 512
	limit_image_height = 512
	output_sequence = off
}
	
option -ps3bpp32 {				// First most used GIM format in PS3
	format_style = psp
	format_endian = big
	image_format = rgba8888
	pixel_order = normal
}

option -ps3dxt5 {				// Second most used GIM format in PS3
	format_style = psp
	format_endian = big
	image_format = dxt5
}

	//  GIM formats supported by CFW RCO's

option -pspbpp4 {
	format_style = psp
	format_endian = little
	image_format = index4
	pixel_order = faster
	limit_image_width = 512
	limit_image_height = 512
	output_sequence = off
}

option -pspbpp16 {
	format_style = psp
	format_endian = little
	image_format = rgba5551
	pixel_order = faster
	limit_image_width = 512
	limit_image_height = 512
	output_sequence = off
}

option -pspbpp16a {
	format_style = psp
	format_endian = little
	image_format = rgba4444
	pixel_order = faster
	limit_image_width = 512
	limit_image_height = 512
	output_sequence = off
}

option -pspbpp16p {
	format_style = psp
	format_endian = little
	image_format = rgba5650
	pixel_order = faster
	limit_image_width = 512
	limit_image_height = 512
	output_sequence = off
}

option -pspbpp32 {
	format_style = psp
	format_endian = little
	image_format = rgba8888
	pixel_order = faster
	limit_image_width = 512
	limit_image_height = 512
	output_sequence = off
}

This completes all ?, in some way are making uneeded the "convenient options"
Note are divided in 2 groups, the GIM formats used in OFW are placed at top to give them some kind of preference, because the "First most used GIM format in OFW" for each console can be considered the default
This way is posible to use them from the rcoxml:

For PSP the default image type="pspbpp8"
The user can replace the type manually by: pspbpp4, pspbpp16a, pspbpp16p, pspbpp32 (to change image quality)

XML Code
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="psp" minFirmwareVer="1.5">
	<MainTree name="sysconf_plugin_about">
		<ImageTree>
			<Image name="tex_about_psp_WW_0" src="Images\tex_about_psp_WW_0.png" format="gim" type="pspbpp8" compression="zlib" unknownByte="0" />

For PS3 the default image type="ps3bpp32"
The user can replace the type manually by: ps3dxt5 (for the images that needs it)

XML Code
<RcoFile UMDFlag="0" rcomageXmlVer="1.1" type="ps3" minFirmwareVer="unknownId0x130">
	<MainTree name="xmb_plugin">
		<ImageTree>
			<Image name="tex_loading_icon" src="Images\tex_loading_icon.png" format="gim" type="ps3bpp32" compression="zlib" unknownByte="0" />


(10/04/2015 06:43 PM)ZiNgA BuRgA Wrote:  Also, it may be possible to swap types - at least on the PSP, where most (all maybe?) firmware GIMs are 8-bit (indexed), but can be replaced by 32-bit (8888) and they work fine (provided you don't hit the internal memory limitations).  I don't have a PS3 to test with, so I don't know what GIM types could be swapped.
For PSP i grouped them as "GIM formats supported by CFW RCO's"
For PS3 i don't know if there are alternatives, i guess yes but because the default is rgba8888 the others are lower quality so i think not much people will have interest in reducing quality

(10/04/2015 06:43 PM)ZiNgA BuRgA Wrote:  The UMDFlag and minFirmwareVer attributes, I don't really know about.  They are values in the RCO file which seem to correspond with versioning, but I don't fully understand them.  'minFirmwareVer' was used because I map the values in the RCO file to PSP firmware versions:

C Code
1
2
3
4
5
6
7
8
9
10
		switch(rco->verId) {
			case 0x70: fputs("1.0", fp); break;
			case 0x71: fputs("1.5", fp); break;
			case 0x90: fputs("2.6", fp); break;
			case 0x95: fputs("2.7", fp); break;
			case 0x96: fputs("2.8", fp); break;
			case 0x100: fputs("3.5", fp); break;
			//case 0x107: fputs("ps3", fp); break;
			default: fprintf(fp, "unknownId0x%x", rco->verId);
		}


So I've seen a 0x107 for PS3 RCOs, I suppose some may be 0x130 and maybe something else.  It may correspond with a particular firmware version, I don't know.

I was curious about what is the UMDFlag, i know part of the history you found it used in some rco's that was in a UMD but i don't know more, one of the doubts i have is if posible to use rco's in PS3 bluray discs and incase are supported if uses the same flag
I have no idea, but as a precaution you could change the name to "DiscFlag"... the meaning is almost the same because UMD and BluRay are "disc media type"
But changing the name of something without being sure of his purpose is a bit risky so not so sure what i would do

For minFirmwareVer im not sure what to say, if it changes so much (and increases) it needs to be some kind of versioning, but i can't imagine
I see you had 0x107 from a old ps3 rco, there is another one posted in wiki with 0x120, and the example i posted here is 0x130... it seems are still increasing
By now for the unknowns you can change this line to output only the hex value, it will look better not like a bug

C Code
			default: fprintf(fp, "0x%x", rco->verId);

(This post was last modified: 13/04/2015 09:28 AM by sandungas.)
12/04/2015 02:02 AM
Find all posts by this user Quote this message in a reply
Post Reply 


Messages In This Thread
RE: [PSP] Rcomage v1.1.1 - new RCO manipulation tool - sandungas - 12/04/2015 02:02 AM

Forum Jump:


User(s) browsing this thread: 3 Guest(s)

 Quick Theme: