Документация основана на учениях nikita600.
Для добавления картинки и иконки нам понадобятся:
UPX303, ResHacker, патч, картинка, иконка.
1. Для начала возьмём патч. Я взял патч-пустышку, которая была создана на основе оригинальных РОМ’ов SNES’a, т.е. там ничего нет. Одна оболочка. Эта оболочка весит 4,3 Кб.
Файл "/upload/blog/doka01.png" не найден!
2. Открываем командную строку. Переходим в папку, где лежит патч (для тех кто не помнит - это команда cd <путь к папке>). Я замарачиватся не стал и кинул патч в папку 1 на диске С.
Пишем команду
<b>upx.exe -d patch.exe</b>, где patch.exe - это имя патча, который расжимаем.
Файл "/upload/blog/doka02.png" не найден!
3. Теперь через ResHacker открываем патч, щелкаем по Dialog -> 200 -> 1033 и видим вот такую картину.
Файл "/upload/blog/doka03.png" не найден!
4. Решаем какую картинку будем вставлять. Я решил вот эту.
Файл "/upload/blog/magicteam.png" не найден!
<b>Кстати, картинка должна быть в формате BMP!</b>
Весит картинка у меня 159 Кб.
Файл "/upload/blog/doka11.png" не найден!
5. Добавляем картинку Action -> Add a new Resource...
Файл "/upload/blog/doka04.png" не найден!
Даём имя для нового ресурса т.е. картинки. Я написал просто RIS (от слова рисунок.

).
Файл "/upload/blog/doka05.png" не найден!
Нажимаем кнопку Add Resource.
6. В программе появилась новая папка Bitmap. Переходим по ней Bitmap -> RIS -> 0. Если всё нормально, то вы увидите картинку.
Файл "/upload/blog/doka08.png" не найден!
А если нет, то увидете сообщение.
Файл "/upload/blog/doka06.png" не найден!
Значит, что с форматом BMP у вас что-то не так.
Откройте картинку в Paint и сохраните её как "256-цветный рисунок".
Файл "/upload/blog/doka07.png" не найден!
Для замены имеющейся картинки в программе на другую, щелкните по картинку ПКМ и в меню выберите Replace Resourсe. В появивщемся окне нажмите на кнопку "Open file with new bitmap...", выбираете нужную картинку и нажимаете затем кнопку Replace. Всё. Картинка заменена.
7. Теперь переходим в диалоговую форму Dialog -> 200 -> 1033. Картинку на форме вы не увидите, пока не добавите код.
<b>CONTROL "FILENAME", 0, STATIC, SS_BITMAP | WS_CHILD | WS_VISIBLE | WS_GROUP, 222, 65535, 146, 162</b>, где FILENAME - это имя файла. В моём примере это RIS.
Далее необходимо нажать на кнопку "Compile Script", которая после внесения(изменения) кода должна быть активной.
Переходим на форму и раздвигаем границу форму. Видим это.
Файл "/upload/blog/doka09.png" не найден!
Каждый сам как захочет может разместить и перевести объекты на форме, но я покажу вам уже готовый пример с выровненными объектами и переведёнными надписями.
<b>
200 DIALOG 120, 57, 244, 245
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Патч без НИКТО

"
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
FONT 8, "MS SANS SERIF"
{
CONTROL "Описание", 101, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 3, 108, 240, 70
CONTROL "", 102, EDIT, ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL, 7, 119, 231, 53
CONTROL "Файл, который будем патчить", 103, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 3, 181, 240, 30
CONTROL "", 104, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 7, 192, 184, 12
CONTROL "Открыть", 105, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 194, 192, 41, 14
CONTROL "Статус", 106, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 3, 214, 240, 29
CONTROL "Информация...", 107, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 133, 225, 57, 14
CONTROL "Патчить", 108, BUTTON, BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 194, 225, 41, 14
CONTROL "", 109, EDIT, ES_LEFT | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER, 7, 225, 123, 12
CONTROL "RIS", 0, STATIC, SS_BITMAP | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 6, 233, 95
}
</b>
Файл "/upload/blog/doka10.png" не найден!
8. Добавление иконки в программу, происходит по тем же действиям, что и картинка, только имя пишем ICON.
Файл "/upload/blog/doka13.png" не найден!
После чего в патче появляет папка Icon Group -> ICON -> 0.
Файл "/upload/blog/doka14.png" не найден!
<b>Внимание!</b> Требования к иконке:
- Размер не больше 48х48
- Цвета - 256 colors
9. Сохраняем изменения в патче File -> Save. При этом в папке, где у вам лежал патч, создатся резервная копия патча (на всякий случай

) без изменений. В конце имени будет написано _original.
Вот такой стал патч.
Файл "/upload/blog/doka15.png" не найден!
Файл "/upload/blog/doka16.png" не найден!
10. Сжимаем патч. Теперь в командной строке пишем
<b>upx.exe -9 patch.exe</b>
Да. Там именно девять. Не ты первый, не ты последний это спрашиваешь.
Файл "/upload/blog/doka17.png" не найден!
11. Теперь патч у нас весит 41.3 Кб, но в наши времена, когда каждый день люди качают по 10 Гб фильмов - это не страшно, зато красиво. ;)
Файл "/upload/blog/doka18.png" не найден!
P.S. А некоторые нехорошие дядьки, так и не дали оформить мне патч по игре, а создали его в другой программе, а не в IPS’e.
P.S.S. Две программы из Доки-шмоки 2
UPX303
ResHacker