GimConv: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
(reordered)
Line 322: Line 322:


==Options==
==Options==
To specify an option is needed to use '''a single dash''' with the name of the option.  
{{Boxtip1|content=To specify an option is needed to use '''a single dash''' with the name of the option.}}
 
GimConv.exe allows to make a GIM-to-PNG conversions just by specifying the file extension with the option '''-o''':
GimConv.exe allows to make a GIM-to-PNG conversions just by specifying the file extension with the option '''-o''':
{{Keyboard|content='''gimconv.exe in.gim -o out.png'''}}
{{Keyboard|content='''gimconv.exe in.gim -o out.png'''}}
Line 353: Line 352:


==Settings==
==Settings==
To specify a setting is needed to use '''a double dash''' with the name of the setting.
{{Boxtip1|content=To specify a setting is needed to use '''a double dash''' with the name of the setting.}}
 
This is the most accurate way to have full controll of how the GIM is built, if you are picky you can write a long line of settings to be sure you are overriding all the defaults (just incase the GimConv.cfg was modifyed by someone, by doing this you are overriding his/her changes made to default settings). If you are writing an script or any tool that sends actions to gimconv.exe you should use this method
This is the most accurate way to have full controll of how the GIM is built, if you are picky you can write a long line of settings to be sure you are overriding all the defaults (just incase the GimConv.cfg was modifyed by someone, by doing this you are overriding his/her changes made to default settings). If you are writing an script or any tool that sends actions to gimconv.exe you should use this method
{{Keyboard|content='''gimconv.exe in.png -o out.gim --pixel_order normal --format_style psp --format_endian big'''}}
{{Keyboard|content='''gimconv.exe in.png -o out.gim --pixel_order normal --format_style psp --format_endian big'''}}
Line 368: Line 366:


==Cumulative options and settings==
==Cumulative options and settings==
Reminder: options are passed with '''a single dash''' and settings with a '''double dash'''
{{Boxtip1|content=Reminder: options are passed with '''a single dash''' and settings with a '''double dash'''}}
 
This is the official way, the predefined options of the official GimConv.cfg are intended to be used together with other options, this way you can have an option containing a group of settings (that are common for a console) and several other options for the different GIM formats supported in that console, using GimConv.exe this way is a bit more confusing though and makes harder to pass commands to it, but is very handy to make tests
This is the official way, the predefined options of the official GimConv.cfg are intended to be used together with other options, this way you can have an option containing a group of settings (that are common for a console) and several other options for the different GIM formats supported in that console, using GimConv.exe this way is a bit more confusing though and makes harder to pass commands to it, but is very handy to make tests
{{Keyboard|content='''gimconv.exe in.png -o out.gim -DXT --pixel_channel brag'''}}
{{Keyboard|content='''gimconv.exe in.png -o out.gim -DXT --pixel_channel brag'''}}
Line 383: Line 380:
There are 2 options in rcomage specific for this task, named: '''--gimconv-cmd''' and '''--gimconv-flags'''
There are 2 options in rcomage specific for this task, named: '''--gimconv-cmd''' and '''--gimconv-flags'''
{{Keyboard|content='''rcomage.exe compile in.xml out.rco --gimconv-cmd ".\gimconv\gimconv.exe" --gimconv-flags "--pixel_order normal --format_style psp --format_endian big"'''}}
{{Keyboard|content='''rcomage.exe compile in.xml out.rco --gimconv-cmd ".\gimconv\gimconv.exe" --gimconv-flags "--pixel_order normal --format_style psp --format_endian big"'''}}
Inside RCO files from PS3 official firmwares there are (at least) 2 types of GIM formats, and both can be used inside the same RCO, as example... an RCO with a total of 14 GIM files and 12 of made using some GIM settings, and the other 2 with different GIM settings, for this reason is needed to handle every GIM file individually
Is not posible to compile a PS3 RCO with rcomage by using PNG images as source because rcomage.exe sends the GIM settings to gimconv.exe to make the PNG--->GIM image conversions and this GIM settings are applyed to all PNG images, so all the GIM files in the RCO will have the same GIM settings, this is wrong
<!--
In other words, the only way to compile this a RCO where you want to modify some GIM files is in 2 steps. In the first step is needed to make the different GIM conversions with gimconv.exe (and all the other conversions in case exists .VAG audio a WAV2VAG conversion or a JS2VSMX for the .VSMX script). In the second step is needed to compile the RCO with rcomage.exe by using the GIM's VAG's and VSMX's as sources without any kind of file conversions
-->
=GimConv.cfg options for PS3=
You can modify the GimConv.cfg file by adding some options (with custom names) containing any settings, by doing this you can keep a record of the correct settings for some GIM formats and group lot of settings under a single option, additionally when using GimConv.exe from command line the commands will be much shorter. This wiki section proposes a couple of options (but probably PS3 supports a lot more) that have been tested and are the first and second most commonlly used in PS3 official firmwares
*'''1st most common''' GIM format used in official PS3 firmwares
{{Boxcode|content=<syntaxhighlight lang="c">
option -ps3rgba8888 {
format_endian = big
format_style = psp
image_format = rgba8888
pixel_order = normal
pixel_channel = rgba
limit_image_width = 4096
limit_image_height = 4096
}
</syntaxhighlight>}}
*'''2nd most common''' GIM format used in official PS3 firmwares
{{Boxcode|content=<syntaxhighlight lang="c">
option -ps3dxt5 {
format_endian = big
format_style = psp
image_format = dxt5
pixel_order = normal
pixel_channel = default
limit_image_width = 4096
limit_image_height = 4096
}
</syntaxhighlight>}}


=How to identify GIM settings=
=How to identify GIM settings=
{{Boxtip1|content='''GIM-to-GIM''' is the only conversion method that is '''[https://en.wikipedia.org/wiki/Lossless_compression lossless]''' for all image formats supported by GimConv.exe}}
The goal is to identify the GimConv settings that was used when the original GIM file was created, there are basically two ways to identify GIM settings, by reading the GIM structure, or by bruteforce
The goal is to identify the GimConv settings that was used when the original GIM file was created, there are basically two ways to identify GIM settings, by reading the GIM structure, or by bruteforce


Line 406: Line 439:


==By bruteforce==
==By bruteforce==
{{Boxinfo1|content='''GIM-to-GIM''' is the only conversion method that is '''[https://en.wikipedia.org/wiki/Lossless_compression lossless]''' for all image formats supported by GimConv.exe}}
The word [https://en.wikipedia.org/wiki/Brute-force_search bruteforce] sounds a bit ridiculous used in this enviroment, but it defines pretty well how this identification method works. Consist in rebuilding the GIM file several times by using different GimConv settings until we generate a GIM file identical to the original. In other words... if you find how to create a GIM file exactly like the original you can be 100% sure the settings you are using are exactly the same used by sony to create that GIM
The word [https://en.wikipedia.org/wiki/Brute-force_search bruteforce] sounds a bit ridiculous used in this enviroment, but it defines pretty well how this identification method works. Consist in rebuilding the GIM file several times by using different GimConv settings until we generate a GIM file identical to the original. In other words... if you find how to create a GIM file exactly like the original you can be 100% sure the settings you are using are exactly the same used by sony to create that GIM


Line 444: Line 478:
-->
-->


=GIM formats used in PS3=
==Exercises (wip:)==
PS3 uses at least 2 types of GIM images, both included inside rco's, and in some cases both types in the same rco
*In [[explore_plugin]]_full.rco from firmware 4.70 there are 245 images:
 
**201 was created by using settings: ''--format_style psp --format_endian big --image_format rgba8888 --pixel_order normal'' (exact match of gims after rebuilding gim--->png--->gim), such tex_psn.gim
When an .RCO contains 2 or more images that was created with different .GIM settings... it means is not posible to compile the .RCO with rcomage by using .PNG images as source (because rcomage.exe sends the GIM settings to gimconv.exe to make the PNG--->GIM image conversion and this settings are applyed to all PNG images)
**030 was created by using settings: ''--format_style psp --format_endian big --image_format rgba8888 --pixel_order normal --update_fileinfo on'' (exact match of gims after removing footer from originals and rebuilding gim--->png--->gim), see: [[Graphic_Image_Map_(GIM)#0xFF_.28Fileinfo.29|fileinfo]]:
 
**014 was created by using settings: ''--format_style psp --format_endian big --image_format dxt5'' (exact match of gims after rebuilding gim--->gim)
In other words, the only way to compile this RCO's is in 2 steps. In the first step is needed to make the different .GIM conversions with gimconv.exe (and all the other conversions in case exists .VAG audio a WAV2VAG conversion or a JS2VSMX for the .VSMX script). In the second step is needed to compile the .RCO with rcomage.exe by using the .GIM's .VAG's and .VSMX's as sources without any kind of file conversions
***item_tex_trophy.gim, trophy_tex_grade_bronze.gim, trophy_tex_grade_gold.gim, trophy_tex_grade_hidden.gim, trophy_tex_grade_platinum.gim, trophy_tex_grade_silver.gim, item_tex_CardBallon.gim, item_tex_Profile_Game.gim, item_tex_Profile_Highlight.gim, item_tex_Profile_Onlines.gim, tex_indi_Me.gim, tex_sb_base.gim, tex_sb_base_s.gim, tex_sb_slider.gim
 
Also means we have a big problem to document in wiki wich settings are used for each image (there are thousands of images so initially seems not posible), but probably they follows a rule, so the solution is to deduce or imagine the real reason of why the ps3 is using different gim formats inside the .rco's


<!--
{| class="wikitable"
{| class="wikitable"
|-
|-
Line 461: Line 494:
| '''ps3dxt5''' || --format_style psp --format_endian big --image_format dxt5 || Second most used GIM format inside rco's
| '''ps3dxt5''' || --format_style psp --format_endian big --image_format dxt5 || Second most used GIM format inside rco's
|}
|}
 
-->
'''Notes about [[explore_plugin]]_full.rco from firmware 4.70''':
*There are 245 images
**201 was created by using settings: ''--format_style psp --format_endian big --image_format rgba8888 --pixel_order normal'' (exact match of gims after rebuilding gim--->png--->gim), such tex_psn.gim
**030 was created by using settings: ''--format_style psp --format_endian big --image_format rgba8888 --pixel_order normal --update_fileinfo on'' (exact match of gims after removing footer from originals and rebuilding gim--->png--->gim), see: [[Graphic_Image_Map_(GIM)#0xFF_.28Fileinfo.29|fileinfo]]:
**014 was created by using settings: ''--format_style psp --format_endian big --image_format dxt5'' (exact match of gims after rebuilding gim--->gim)
***item_tex_trophy.gim, trophy_tex_grade_bronze.gim, trophy_tex_grade_gold.gim, trophy_tex_grade_hidden.gim, trophy_tex_grade_platinum.gim, trophy_tex_grade_silver.gim, item_tex_CardBallon.gim, item_tex_Profile_Game.gim, item_tex_Profile_Highlight.gim, item_tex_Profile_Onlines.gim, tex_indi_Me.gim, tex_sb_base.gim, tex_sb_base_s.gim, tex_sb_slider.gim
 
==PSDEVWIKI GimConv.cfg options for PS3==
You can modify the GimConv.cfg file by adding some options (with custom names) containing any settings, by doing this you can keep a record of the correct settings for some GIM formats and group lot of settings under a single option, additionally when using GimConv.exe from command line the commands will be much shorter. This wiki section proposes a couple of options (but probably PS3 supports a lot more) that have been tested and are the first and second most commonlly used in PS3 official firmwares
 
*'''1st most common''' GIM format used in official PS3 firmwares
{{Boxcode|content=<syntaxhighlight lang="c">
option -ps3rgba8888 {
format_endian = big
format_style = psp
image_format = rgba8888
pixel_order = normal
pixel_channel = rgba
limit_image_width = 4096
limit_image_height = 4096
}
</syntaxhighlight>}}
 
*'''2nd most common''' GIM format used in official PS3 firmwares
{{Boxcode|content=<syntaxhighlight lang="c">
option -ps3dxt5 {
format_endian = big
format_style = psp
image_format = dxt5
pixel_order = normal
pixel_channel = default
limit_image_width = 4096
limit_image_height = 4096
}
</syntaxhighlight>}}


{{File Formats}}
{{File Formats}}
<noinclude>[[Category:Main]]</noinclude>
<noinclude>[[Category:Main]]</noinclude>

Revision as of 08:32, 24 April 2018

Description

GimConv.exe is a sony program for microsoft windows used to convert GIM images, see Graphic Image Map (GIM)

  • GimConv.exe versions:
    • 1.20c (GIM files made around 2005 included in pre-retail PS3 firmwares such 0.82.006)
    • 1.20e (GIM files made around 2006 and still present in PS3 4.82 firmware)
    • 1.20h released with p3tcompiler v2.00 as part of the PS3 Custom Theme Toolbox (this is the version included in rcomage using a modifyed GimConv.cfg)
  • Other notes:
    • GIM images can be previewed in PC by using Gim Viewer (unnofficial app made by hsreina, it has limited support for the "rgba based" GIM formats). See Multimedia Formats and Tools
    • The option -viewer (start gimview.exe when process ends) in the official config file (that was removed for rcomage) is intended to launch an official gimview.exe that doesnt exists in the public release
    • PSP Custom Theme Toolbox admits GIM files as inputs, but doesnt includes a GIM converter
    • Some of the settings (such merge_mode) are related with animated images but the support of animated GIM images on PlayStation consoles is unknown, see: http://endlessparadigm.com/forum/showthread.php?tid=5054
    • It supports AVI video as input, probably to convert the video frames to static images and build a GIM animation with them, unknown usage
    • Gimconv.exe supports an internal script format to automatize image conversions, it can be seen how appears as an option available at bottom of Gimconv.cfg and allows to create GIM-to-GIS conversions. The usage of this scripting features is mostly unknown
    • There is a GIS2PNG converter made by TizzyT

GimConv.cfg Overview

Before explaining how GimConv.exe works is needed an introduction about GimConv.cfg (the config file). All features of GimConv.exe are driven by the settings that appears on GimConv.cfg

usage {
        This is the help screen (only informative)
}
default {
        Default predefined settings (loaded "from top to bottom", if a setting is repeated two or more times the most at bottom overrides the other/s at top)
}
input * {
        Settings for input file formats
}
option * {
        Groups of settings (overrides the defaults settings, are only used when you specify the option name at the command line)
}
script * {
        Unknown
}

Below is shown GimConv.cfg released by sony as part of the PS3 Custom Theme Toolbox (official version)

The contents of GimConv.cfg are loaded "from top to bottom" first are loaded the default settings, and then the settings inside the option (incase you choose an option). The settings inside the options (at bottom ofGimConv.cfg) are actually "overriding" one or more default settings (at top of GimConv.cfg), this overriding also applyes to any setting or option you use in command line, as example, if you change the same setting 3 times in a single command line the only setting that counts is the last one

Code Sample

The config file supplyed by Rcomage contains some changes in the default settings that was common for PSP (included a size limit that breaks compatibility with PS3 and other problematic default settings), some custom options for the formats that are used in PSP, and a option was added for PS3 (labeled -ps3) that seems to be wrong. For more info about the modifications made in the config file supplyed with rcomage see the differences in the Discussion page

GimConv.exe usage

Help screen

The help screen of GimConv.exe displays a few options with an small explain for them, the example below belongs to the official GimConv.cfg with the options sony considered useful, this options are mostly useless for us, in short: interact doesnt allows to do special things, the merge modes are hardcore because are intended to create GIM files by some kind of artisan method where you create the GIM by using "pieces" from other files, the promt modes doesnt helps much, gimview.exe doesnt exists, the image resize methods should not be used (instead you should prepare your images with the correct size before processing them with GimConv.exe), the pixel formats normal/faster should not be used that way individually, and the rgba color channels swapping are not needed for PS3

Type This
'''C:\PS3_Custom_Theme_v200\GimConv>GimConv.exe'''
gimconv ver 1.20h --- generic picture converter
 Copyright (C) 2006 Sony Computer Entertainment Inc.
  All Rights Reserved.

usage:
        gimconv <input files> [options]

options:
        -interact       input additional options
        -pictures       merge files as pictures
        -frames         merge files as frames
        -levels         merge files as levels
        -prompt         prompt always
        -warning        prompt on warning
        -error          prompt on error
        -viewer         start gimview.exe when process ends
        -o <filename>   specify output file name
        -s <w,h>        resize image data
        -S              output text format
        -P              resize image data to a power of two
        -N              output in normal pixel storage format
        -F              output in faster pixel storage format
        -R              re-convert ( don't swap RGBA <-> ABGR )

Options

Tip
To specify an option is needed to use a single dash with the name of the option.

GimConv.exe allows to make a GIM-to-PNG conversions just by specifying the file extension with the option -o:

Type This
'''gimconv.exe in.gim -o out.png'''

If you create a PNG-to-GIM (or any of the supported input formats to GIM) without specifying any other option are going to be loaded all the default settings of GimConv.cfg (from top to bottom) and this is not good, most probably is going to generate a GIM file not compatible with PS3, you can decide to use a modifyed GimConv.cfg with all the default settings required by PS3 but this is not good enought either because there are (at least) 2 different GIM formats used in PS3, and you are going to break the compatbility with PSP, anyway here is the command as an example

Type This
'''gimconv.exe in.png -o out.gim'''

At the time GimConv.exe processes the command it loads the settings of GimConv.cfg file "from top to bottom" (so it starts loading the default settings) and then it loads the option we have choosen (and this option contains settings that overrides the defaults)

Type This
'''gimconv.exe in.png -o out.gim -DXT'''

The option -DXT used in this example contains 3 settings that are going to be loaded after the default settings (this is an example of the official GimConv.cfg, the one used inside rcomage is different):

Code Sample

Another example where can be seen better how the options contains settings that overrides the default settings:

Type This
'''gimconv.exe in.gim -o out.gis -S'''
  • The option -S contains this settings:
Code Sample

At top of GimConv.cfg (as part of the default settings) appears the settings: output_object with value on and output_script with value off (so by default gimconv.exe outputs a GIM and doesnt outputs a GIS). The option -S of this example is switching them (doesnt outputs a GIM but it outputs a GIS)

Settings

Tip
To specify a setting is needed to use a double dash with the name of the setting.

This is the most accurate way to have full controll of how the GIM is built, if you are picky you can write a long line of settings to be sure you are overriding all the defaults (just incase the GimConv.cfg was modifyed by someone, by doing this you are overriding his/her changes made to default settings). If you are writing an script or any tool that sends actions to gimconv.exe you should use this method

Type This
'''gimconv.exe in.png -o out.gim --pixel_order normal --format_style psp --format_endian big'''

The 3 settings used in the example are overriding the default settings at top of GimConv.cfg (this is an example of the official GimConv.cfg, the one used inside rcomage is different):

Code Sample

Cumulative options and settings

Tip
Reminder: options are passed with a single dash and settings with a double dash

This is the official way, the predefined options of the official GimConv.cfg are intended to be used together with other options, this way you can have an option containing a group of settings (that are common for a console) and several other options for the different GIM formats supported in that console, using GimConv.exe this way is a bit more confusing though and makes harder to pass commands to it, but is very handy to make tests

Type This
'''gimconv.exe in.png -o out.gim -DXT --pixel_channel brag'''

The command is loading the option -DXT like in the example above, but is overriding one of the settings inside -DXT, with the --pixel_channel brag to reorder the color channels (from left to right, BLUE, RED, ALPHA, GREEN), the resulting GIM is going to be like the one made in the example above, the only difference is the location of the pixel colors

It allows to cummulate as many settings and options you want, in any order (be careful this could create some problems but it seems it works fine) to do something like this:

Type This
'''gimconv.exe in.png -o out.gis -DXT --pixel_channel brag -S'''

From rcomage

Warning
Warning
Dont use this method for PS3. GIM files inside RCO files from PS3 firmware uses variated formats, this method applyes the same settings for all them and breaks some

This works by sending GIM settings from rcomage.exe to gimconv.exe and is made at the time rcomage.exe is compiling the RCO (see the "compile" help in rcomage page)

There are 2 options in rcomage specific for this task, named: --gimconv-cmd and --gimconv-flags

Type This
'''rcomage.exe compile in.xml out.rco --gimconv-cmd ".\gimconv\gimconv.exe" --gimconv-flags "--pixel_order normal --format_style psp --format_endian big"'''

Inside RCO files from PS3 official firmwares there are (at least) 2 types of GIM formats, and both can be used inside the same RCO, as example... an RCO with a total of 14 GIM files and 12 of made using some GIM settings, and the other 2 with different GIM settings, for this reason is needed to handle every GIM file individually

Is not posible to compile a PS3 RCO with rcomage by using PNG images as source because rcomage.exe sends the GIM settings to gimconv.exe to make the PNG--->GIM image conversions and this GIM settings are applyed to all PNG images, so all the GIM files in the RCO will have the same GIM settings, this is wrong


GimConv.cfg options for PS3

You can modify the GimConv.cfg file by adding some options (with custom names) containing any settings, by doing this you can keep a record of the correct settings for some GIM formats and group lot of settings under a single option, additionally when using GimConv.exe from command line the commands will be much shorter. This wiki section proposes a couple of options (but probably PS3 supports a lot more) that have been tested and are the first and second most commonlly used in PS3 official firmwares

  • 1st most common GIM format used in official PS3 firmwares
Code Sample
  • 2nd most common GIM format used in official PS3 firmwares
Code Sample

How to identify GIM settings

The goal is to identify the GimConv settings that was used when the original GIM file was created, there are basically two ways to identify GIM settings, by reading the GIM structure, or by bruteforce

Both identification methods can be made manually or by using external code, and are not exclusive (for better accuracy you can do both)

By reading GIM structure

Long story short... the GIM format is not completly documented, it allows for lot of features that generates different GIM structures, being realistic... at this point is not posible to retrieve all info needed for rebuild purposes from the original GIM, for more info see: Graphic Image Map (GIM)

  • Anyway, the list of settings needd to collect from the original GIM file are:
    • format_endian (offset 0x0 in the GIM)
    • format_style (offset 0x8 in the GIM)
    • image_format (offset 0x4 of block 0x4 in the GIM)
    • pixel_order (offset 0x8 of block 0x4 in the GIM)
  • Some notes:
    • GIM files using image formats with indexed colors have an additional block 0x5, and block 0x4 is displaced
    • The list of settings mentioned above will work only if the GIM contains a single image/level/frame, otherway the GIM structure becomes more complex
    • There are 4 unknown fields in GIM structure, and it seems GIM was used in other sony devices that are unknown, so dont take this as something general, is just an approach

For this reasons, it cant be said this method is going to be 100% accurate, there is room for errors, the best way to solve this problem is by using the next method explained... by bruteforce

By bruteforce

Info
GIM-to-GIM is the only conversion method that is lossless for all image formats supported by GimConv.exe

The word bruteforce sounds a bit ridiculous used in this enviroment, but it defines pretty well how this identification method works. Consist in rebuilding the GIM file several times by using different GimConv settings until we generate a GIM file identical to the original. In other words... if you find how to create a GIM file exactly like the original you can be 100% sure the settings you are using are exactly the same used by sony to create that GIM

The only way (that works with all image formats) to create a GIM file exactly like the original is by doing a GIM-to-GIM conversion, this is not so retarded as it sounds, GimConv really rebuilds the file when doing a GIM-to-GIM conversion and in the process is preserved the pixel data of DXT based image formats, there are other rebuild method that allows to create GIM files identical to the original such GMI-to-PNG-to-GIM but only works for rgba based image formats, the point is GIM-to-GIM is the only that preserves pixel info for DXT formats, adnd for this reason the GIM-to-GIM conversion superceedes all other methods

In bruteforce is used a "dictionary" that contains the posible candidates that solves the "problem"... the good thing is our dictionary (with the GIM formats found in PS3) only contains 3 candidates, this means in the worst scenario you are going to need to rebuild the GIM file 3 times... if none of the 3 GIM files matches with the original we have a problem (please report back and we will add the rare format to this wiki page)


  • GIM--->GIM method (prefered)
    • Use gimconv with .gim files as input and output (this preserves dxt pixel info, because dxt images doesnt suffers a conversion)
Type This
'''gimconv.exe test.gim -o test.gim --format_style psp --format_endian big --image_format dxt5 --pixel_channel default --pixel_alpha default'''
  • GIM--->PNG--->GIM method (fails when there is involved a DXT conversion because DXT conversions are lossy, works fine for rgba**** image formats):
    • Use rcomagegui to make an extraction of the contents without conversion of images (this way the GIM are extracted as GIM)
    • Use rcomagegui to make another extraction of the contents with conversion of images (this way the GIM are extracted as PNG)
    • Use gimconv to convert a PNG ---to---> GIM by the old method of test-error by trying some of the options availables that appears in gimonv.cfg
    • Use a hexeditor to compare the original GIM extracted in step 1 with the rebuilt GIM from your test, there is no need to make accurate comparisons, just an overview of the first 0x80 bytes of the header, and how the pixel data is ordered starting at offset 0x80
    • When the header and pixel data seems similar make a hash comparison, original GIM and rebuild GIM should be exactly the same hash (is posible to create a GIM exactly like the original)


Exercises (wip:)

  • In explore_plugin_full.rco from firmware 4.70 there are 245 images:
    • 201 was created by using settings: --format_style psp --format_endian big --image_format rgba8888 --pixel_order normal (exact match of gims after rebuilding gim--->png--->gim), such tex_psn.gim
    • 030 was created by using settings: --format_style psp --format_endian big --image_format rgba8888 --pixel_order normal --update_fileinfo on (exact match of gims after removing footer from originals and rebuilding gim--->png--->gim), see: fileinfo:
    • 014 was created by using settings: --format_style psp --format_endian big --image_format dxt5 (exact match of gims after rebuilding gim--->gim)
      • item_tex_trophy.gim, trophy_tex_grade_bronze.gim, trophy_tex_grade_gold.gim, trophy_tex_grade_hidden.gim, trophy_tex_grade_platinum.gim, trophy_tex_grade_silver.gim, item_tex_CardBallon.gim, item_tex_Profile_Game.gim, item_tex_Profile_Highlight.gim, item_tex_Profile_Onlines.gim, tex_indi_Me.gim, tex_sb_base.gim, tex_sb_base_s.gim, tex_sb_slider.gim