Тут такое дело, что в какие-то незапамятные времена, я долго парился с этими GIM-ами и MIG-ами. Точно не помню, но вроде файлы с хедером GIM почему-то не работали на PSP.
Собсно по этому поводу есть несколько темок на форуме. Нашёл парочку тем, там разбросаны по постам архивы со всякими причиндалами по поводу GIM, возможно тебе может что-то пригодиться:
- https://www.pspx.ru/forum/showthread.php?t=91140
- https://www.pspx.ru/forum/showthread.php?t=96493
Почему я написал про опцию 
-L? Потому что это очень важно, щас объясню почему...
Короче, в игре "
Ever17 -the out of infinity- Premium Edition" в исполняемом файле 
PSP_GAME\SYSDIR\EBOOT.BIN(BOOT.BIN) внутри лежат 2 картинки - ICON0.PNG и PIC1.PNG, а следом лежит файл 
nowloading.tm2 - это есть 
GIM-файл.
Эти ресурсы я положил в 
архив во вложении, по их хекс-атрибутам ты их найдёшь в EBOOT.BIN. А файлы *.gis нужно смотреть в текстовом редакторе, там записывается вся служебная информация о конвертации.
Вот так выглядет заголовок и конец MIG-файла в игре, как и должен быть выглядеть (название файла видно в конечной части файла):
Но дело в том, что когда мы прогоняем картинку 
PNG через 
GimConv.exe, то получаем несколько иной файл:
Здесь в конце файла нет названия и прочих технических данных. Чтобы они появились, нужно в 
GimConv.cfg выставить переключатель 
off на 
on в этом месте: 
		update_fileinfo = on		// default off on
 
Но самое важное в том, что у нас заголовок файла отличается от оригинала. Если ты невнимательно разглядывал скрины, то вот так заголовки будет более наглядно сравнить:
- MIG.00.1PSP (оригинал)
- .GIM1.00.PSP (сконверченный в GimConv.exe)
Получается мы получаем 
GIM, хотя нам нужен 
MIG 
Если внимательно приглядеться, то фокус заключается в том, что надпись просто перевёрнута задом наперёд. То есть, в u32 (каждые 4 байта по 8 бит) байты нужно переворачивать в Little Endian вместо Big Endian.
Поэтому я и предупреждал, что нужно в 
GimConv.cfg вписать следующий код: 
	option -L {
    format_endian = little
}
 
И при конвертации PNG в GIM обязательно использовать опцию 
-L
Но есть ещё проблема... Например в этом GIM содержится надпись "
New Loading". Если её перерисовать по-русски "
Загрузка", а потом обратно сконвертировать в GIM, то этот gim получается размером большим, чем оригинал и следовательно не поместится на своё место в файле.
Как же регулировать размер выходного GIM?
Тут есть ещё один секрет. Размер можно регулировать количеством цветов в палитре, что влияет на количество битов на пиксель. Я тут нарисовал несколько нужных опций, которые нужно добавить опять же в конфиг 
GimConv.cfg: 
	option -bpp16p {
	image_format = rgba5650
}
option -bpp16 {
	image_format = rgba5551
}
option -bpp16a {
	image_format = rgba4444
}
option -bpp32 {
	image_format = rgba8888
}
option -bpp4i {
	image_format = index4
}
option -bpp8i {
	image_format = index8
}
option -bpp16i {
	image_format = index16
}
option -bpp32i {
	image_format = index32
}
option -bpp1 {
	image_format = dxt1
}
option -bpp3 {
	image_format = dxt3
}
option -bpp5 {
	image_format = dxt5
}
option -bpp1e {
	image_format = dxt1ext
}
option -bpp3e {
	image_format = dxt3ext
}
option -bpp5e {
	image_format = dxt5ext
}
 
Таким образом у нас появится возможность управлять всевозможными опциями. Разложу по полочкам эти опции:
- Формат RGBA
 -bpp16p = rgba5650 [0000]
 -bpp16 = rgba5551 [0001]
 -bpp16a = rgba4444 [0002]
 -bpp32 = rgba8888 [0003]
- Индексированные цвета (исходная картинка PNG должна быть сохранена в индексированных цветах)
 -bpp4i = index4 [0004]
 -bpp8i = index8 [0005]
 -bpp16i = index16 [0006]
 -bpp32i = index32 [0007]
- Формат dxt
 -bpp1 = dxt1 [0008]
 -bpp3 = dxt3 [0009]
 -bpp5 = dxt5 [000A]
- Формат dxt-ext
 -bpp1e = dxt1ext [0108]
 -bpp3e = dxt3ext [0109]
 -bpp5e = dxt5ext [010A]
То есть, здесь первый столбец, например 
-bpp32 - это опция командной строки.
Следующий столбец = 
rgba8888 - это та цветовая функция, которую выполняет наша опция.
Третий столбец я указал в скобках 
[0003] - это разгадка этой функции, с помощью которой сконвертирован GIM-файл. Этот числовой код всегда записывается в заголовке файла, в позиции 
0x44. Например, если посмотреть на скриншоты хекса выше, то можно догадаться, что оригинальный GIM-файл 
nowloading.tm2 был сконвертирован в формате 
index8 (индексированные цвета 8 бит на пиксел). Именно поэтому я конвертировал свою картинку именно в таком же формате, как видно в позиции 
0x44 стоит код 
[0005] (записано задом наперёд Little Endian).
Таким образом, командная строка будет выглядеть вот так: 
	gimconv -L -bpp8i index.png
 
Подставляя нужный -bpp, можно регулировать размер выходного GIM-файла.
Вот такой у меня получился новый 
GIMMIG-файл (правда на 2 байта больше оригинала):
На этом FAQ заканчиваю.