[Цитировать]

    puhpol
  • 2
  • Стаж: 9 лет 4 месяца
  • Сообщений: 888
  • Репутация:73

    [+] [-]
Доброго времени, Дамы и Господа!
Сегодня будем делать такую красоту:

Для этого нам понадобится только картинка с разрешением 1024х768 или меньше, в формате BMP. Все остальное будем делать командами GRUB4DOS.
Качаем архив >>
В архиве:
1. Menu.lst с пояснениями, что за чем (как смог).
2. Папка "splas" , в папке:
rus.gz - русский шрифт. Сперт мной из раздачи conty9, за что ему ОГРОМНОЕ СПАСИБО!
3112.bmp.gz - картинка с разрешением 1024х768 в формате BMP, пережатая архиватором в GZ.
Если вы знаете, что такое Menu.lst и как с ним работать, думаю вы разберетесь, что там и зачем. Ну, а если нет, попробую объяснить подробнее.
Вот содержимое Menu.lst из архива:
#timeout=20
# Русский шрифт
font /splas/rus.gz
#текст/фон - цвет текста строк загрузки / цвет фона под текстом строк загрузки
#курсор/фон - цвет текста выделенной строки загрузки / цвет фона выделенной строки
#низ/фон - цвет текста подсказки / цвет фона под текстом подсказки
#верх/фон - цвет текста верхней строки с версией / цвет фона под именем версии
#ФОН показывается при отсутствии splashimage (картинки)
# текст/фон курсор/фон низ/фон верх/фон
color black/blue white/black white/black white/black
#Graphicsmode команда может быть использована, чтобы изменить разрешение экрана и цветопередачу.
#graphicsmode -1 100:1000 100:10000 24:32 - насколько понял, универсальная команда. Груб сам определяет наибольшее возможное разрешение и цветопередачу.
#graphicsmode -1 640 100:1000 24:32 - подобрать наилучшую глубину цвета 24 или 32 при разрешении экрана 640х480
#graphicsmode -1 800 100:1000 24:32 - подобрать наилучшую глубину цвета 24 или 32 при разрешении экрана 800x600
#graphicsmode -1 1024 100:1000 24:32 - подобрать наилучшую глубину цвета 24 или 32 при разрешении экрана 1024x768
graphicsmode -1 100:1000 100:10000 24:32
#Путь к картинке в формате bmp (может быть пережата в архиватором в формат gz для экономии места).
splashimage /splas/3112.bmp.gz
# Версия
write (md)0x220+1 !BAT\necho -n -P:0000 $[0107] Puhpol edition %disk% \0 && initscript (md)0x220+1
#пропуск строки. При прокрутке клавишами "вверх" "вниз" выделятся не будет. При прокрутке клавишами "вправо" "влево" выделяется.
title
root
title Загрузка с жесткого диска
find --set-root --ignore-floppies --ignore-cd /bootmgr || find --set-root --ignore-floppies --ignore-cd /ntldr
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
rootnoverify (hd0)
chainloader (hd0)+1
timeout=20 - с этим все понятно. Время в секундах до запуска выделенного пункта меню.
font /splas/rus.gz - путь к русскому шрифту. Тоже все понятно (шрифт может лежать где угодно)
color black/blue white/black white/black white/black - Цвета шрифта и фона. Цвет шрифта работает и в splashimage, а вот цвет фона вы увидите только, если не будете использовать картинку .То есть, без splashimage используется фон, цвет которого мы настраеваем в этой строчке. Если закомментировать splashimage, то есть, поставить # перед командой. Вместо картинки увидим вот такое:

Фон экрана делится на три части. В каждой можно настроить цвет:
текст/фон - цвет текста строк загрузки / цвет фона под текстом строк загрузки
курсор/фон - цвет текста выделенной строки загрузки / цвет фона выделенной строки
низ/фон - цвет текста подсказки / цвет фона под текстом подсказки
верх/фон - цвет текста верхней строки с версией / цвет фона под именем версии
Таблица возможных цветов.

graphicsmode -1 100:1000 100:10000 24:32 - в этой строке задается графический режим. То есть, разрешение экрана и глубину цвета.
Возможные значения (далеко не все):
graphicsmode -1 100:1000 100:10000 24:32 - насколько понял, универсальная команда. Груб сам определяет наибольшее возможное разрешение и цветопередачу.
graphicsmode -1 640 100:1000 24:32 - подобрать наилучшую глубину цвета 24 или 32 при разрешении экрана 640х480
graphicsmode -1 800 100:1000 24:32 - подобрать наилучшую глубину цвета 24 или 32 при разрешении экрана 800x600
graphicsmode -1 1024 100:1000 24:32 - подобрать наилучшую глубину цвета 24 или 32 при разрешении экрана 1024x768
graphicsmode -1 640 -разрешение экрана 640х480
graphicsmode -1 800 -разрешение экрана 800х600
graphicsmode -1 1024 -разрешение экрана 1024х768
splashimage /splas/3112.bmp.gz - путь к картинке, которая может лежать где угодно. Поддерживаются три разрешения картинки: 640х480, 800x600, 1024x768. Формат картинки ОБЯЗАТЕЛЬНО BMP!
Формат картинки зависит от того, какое разрешение поддерживает BIOS.
Чтобы сделать картинку: берем понравившейся рисунок и с помощью графического редактора изменяем разрешение и сохраняем в формате bmp .Так как картинки в bmp много весят, можно архивировать картинку в формат GZ.
Пока как то так. Сам еще не все понял.
Все что тут написано - мои личные умозаключения. Возможно не верные.
По мотивам этой статьи (англ.)>> СТАТЬЯ и раздачи conty9, за что ему ОГРОМНОЕ СПАСИБО!

[Цитировать]

    Kupr_Soft
  • 26917
  • Стаж: 3 года 2 месяца
  • Сообщений: 30
  • Репутация:16

    [+] [-]
  • Откуда: Питер
rus.gz - русский шрифт. Сперт мной из раздачи conty9, за что ему ОГРОМНОЕ СПАСИБО!
Хм... а вот нет-ли ентого вот шрифта в виде файла *.BIN
а то надо тут =)
Стандартные варианты:
unifont.hex.gz и unifont.bin
(тонкие русские символы)
rus.gz
(нормальной толщины русские символы)
у меня есть
а вот как раз раздобыть нормальной толщины шрифт RUS в формате rus.bin
p.s. К стати внутри шрифтов .gz оказался обычный текстовой файлик вот такого вида:
0030:00007CC6C6CED6E6C6C6C67C00000000
004D:0000C6EEFEFED6C6C6C6C6C600000000
0054:00007E7E5A1818181818183C00000000
0056:0000C6C6C6C6C6C6C66C381000000000
0057:0000C6C6C6C6D6D6D6FEEE6C00000000
0058:0000C6C66C7C38387C6CC6C600000000
0059:0000666666663C181818183C00000000
005A:0000FEC6860C183060C2C6FE00000000
006D:0000000000ECFED6D6D6D6C600000000

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
Kupr_Soft, расширение gz означает, что это архив GZip. Так что просто нужно распаковать rus.gz с помощью 7zip и получим rus.bin.

[Цитировать]

    Kupr_Soft
  • 26917
  • Стаж: 3 года 2 месяца
  • Сообщений: 30
  • Репутация:16

    [+] [-]
  • Откуда: Питер
conty9, Хм, это-то я проделал, там просто файлик текстовой... можно посмотреть ... код я выше написал
а вот файлик
unifont.bin который я нашёл в UEFI варианте memtest86 который там используется в том числе для русского шрифта...
совершенно другой внутри...я предположил что он чем-то отформатирован...либо упакован...
но по виду и набору шрифтов (при выборе в программе) он очень похож на unifont.hex.gz
(тоже русские символы сделаны тонкими и смотрятся некрасиво с обычными толстыми английскими рядом...
Есть шрифт с правильным размером русских символов это: rus.gz
но ентой софтине его не подсунуть в таком виде... поэтому я и спрашиваю, может есть такой вариант шрифта как rus.gz но в формате rus.bin
или может есть какая конвертилка... блин понять-бы что именно они сделали с шрифтом в своей проге ... что это вообще за формат файла шрифтов...
хм, а это мысль...
полез искать в нете онлайн определение файлов по содержимому... вот например сайтик https://mark0.net/onlinetrid.html
с полной уверенностью говорит мне что это ничто иное как графический файл (хм я читал что иногда шрифты делают в виде BMP) а тут хитрого старинного формата :
Printfox bitmap
Extension(s) .bs, .pg, .gb, .bin
Released 1986
Printfox (or Printfox/Pagefox) bitmap is a raster graphics format associated with the Printfox and Pagefox desktop publishing programs for the Commodore 64. Most of the information about it is in German.
There are at least 3 formats of Printfox/Pagefox images. All are RLE-encoded:
.BG with resolution 640x400, the first byte is 'G' (0x47)
.BS with resolution 320x200, the first byte is 'B' (0x42)
.PG with resolution 8x8 up to 640x800, the first byte is 'P' (0x50)
Software
Konvertor
XnView (may not allow .bin file extension)
Tom's Editor Desktop

Эм, выглядит довольно странно... я конечно попробовал переименовть и открыть но фиг там походу надо спец софт... если это вообще ОНО... а не ошибка определятеля =)
Ладно качнул и поставил Konvertor и посмотрел на всё енто дело...

Эм, вроде как близко к тому что надо... но что-то не то есть какое-то смещение... что-ли...
скачал картинку именно такого формата, и понял что это не оно...
начало файла там совершенно другое...
а у меня начало файла вообще:

ладно, расследование зашло в тупик... =/


Последний раз редактировалось: Kupr_Soft (2021-01-29 15:23), всего редактировалось 1 раз

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
Всё верно пишут: файл шрифта - это набор графических изображений букв, в бинарном виде (каждый символ - это двоичная картинка, например, 8х8).
Шрифт rus_bold маленький, поскольку урезан, там только изображения кирилличных символов. В unifont, насколько я помню, есть все символы UTF-8 (кириллица там в конце, править неизвестно как).
Каким софтом всё это править - хз. По идее, нужно искать DOS/Linux утилиты.

[Цитировать]

    Kupr_Soft
  • 26917
  • Стаж: 3 года 2 месяца
  • Сообщений: 30
  • Репутация:16

    [+] [-]
  • Откуда: Питер
conty9, ну это -да... вот я нашёл по этому поводу немного инфы...
https://www.unifoundry.com/unifont/
интересные картинки там... =)
да, как тут всё оказывается сложно и непросто...
в общем у этого шрифта ещё и куча версий есть...
а в общем из всех утилит для работы с ним указаны:
I (Paul Hardy) initially wrote four main utility programs in this package:
unihex2bmp — converts one 256 code point page of a .hex Unifont file into a bitmapped 16 by 16 grid.
unibmp2hex — converts one of the above bitmaps back into .hex format.
unipagecount — counts the number of code points that have representation in a .hex Unifont file.
unidup — searches for duplicate code point entries in a sorted a .hex Unifont file.
то есть работаем только с HEX вариантом(обычный текстовый файл...либо картинка в BMP)
значит ентот файл с расширением .BIN явно что-то извращенское, возможно что самостоятельный блин формат какой-то =(
Добавлено через 45 минут 29 секунд:
...просто в груб4досе там всё окей получается

символы что русские что англицкие, одинаковой толщины и вида...
а вот тут в ентой проге это выглядит по уродски:

Русские символы тонкие, англицкие толстые... когда это всё рядом, выглядит убого...
=(

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 1 месяц
  • Сообщений: 1264
  • Репутация:127

    [+] [-]
Kupr_Soft, надо смотреть файлы, возможно это просто бинарный способ записи, то есть тоже что шестнадцатеричные числа в текстовом, только записаны бинарно друг за другом указанный диапазон. И посмотри тут

[Цитировать]

    Kupr_Soft
  • 26917
  • Стаж: 3 года 2 месяца
  • Сообщений: 30
  • Репутация:16

    [+] [-]
  • Откуда: Питер
AZJIO, если что то вот cfvq вайлик... мало-ли у кого есть возможность его посмотреть:
https://yadi.sk/d/vGE37_MpQcsBbA
Добавлено через 34 минуты 54 секунды:
И посмотри тут
глянул, но там немного не то, хотя тоже интересная инфа, DED2007 вообще знатный, столько интересного вытворял =)
но там именно про вариант как сделать шрифт .fnt а это не то что надо
не тот формат внутри... так-же как и стандартные .ttf и .fon
полазил по сайту проги, нашёл последнюю версию бета вытащил оттуда этот файл шрифтов, но он такой-же неправильный. =/
всё-же я склоняюсь к варианту что там графика, но вот в каком формате блин...судя по началу файла PASS (как и название фирмы PASSMARK) наверняка изват с собственным форматом файла...
хоть разрабам пиши =)

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 1 месяц
  • Сообщений: 1264
  • Репутация:127

    [+] [-]
83033 как сделать шрифт .fnt а это не то что надо
шрифт невозможно из под груба загрузить, кроме англ... чтобы не парится придумали рисовать шрифт картинками, каритинки кодировать в виде пикселей, загрузил битмап, вставил координатам, всё. Осталось разобрать формат записи. Есть вариант записать бинарник, но он нечитабельный и не встроишь в lst, то есть придумали несколько форматов бинарник и текстовый. Я показал пример текстового формата, бинарник тоже самое, только в формате кодов на уровне данных памяти, то есть их не надо конвертировать при чтении.

[Цитировать]

    Kupr_Soft
  • 26917
  • Стаж: 3 года 2 месяца
  • Сообщений: 30
  • Репутация:16

    [+] [-]
  • Откуда: Питер
AZJIO, звучит логично...да
просто в ентой софтине не груб, а UEFI и взят шрифт с таким-же названием как в Грубе и внешне очень похожий на него.
Но это не точно =)
вполне вероятно что они взяли таки обычный унифонт и в виде картинки BMP

его каким-то хитрым способом ужали, архивнули или типа того...
и уже когда юзают своей прогой распаковывают...
вот только как его открыть и поправить не понятно...
p.s. Я уж даже написал им ...ну а вдруг =)

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 1 месяц
  • Сообщений: 1264
  • Репутация:127

    [+] [-]
Kupr_Soft, скачал файл, не похож на архив. Посмотри любой архив на случайном участке в центре, там обычно нет повторяющихся байтов типа 00 00 00 00 00 00 00 00 или 21 21 21 21 21 21 на то оно и сжатие, чтобы записать 8 раз по 00 или 64 раза по 0 в двоичном, вместо последовательности. Исключение в начале и в конце файла, где могут быть метки, данные об архиве и т.д.
Смотреть в редакторе картинок не имеет смысла, хотя на скрине "konvertor image viewer" прослеживаются некоторые буквы (когда развёртка совпадет), это говорит о том что файл не сжатый. Его просто надо правильно анализировать, то есть выдергивать например по 32 байта кусочки со сдвигом в байт, пока не попадёшь на границы битмапа, то есть вырежешь одну букву и начиная с этой границы все остальные буквы будут попадать как участок битмапа этой буквы и все они начнут отображаться по кусочкам. Остаётся в эти кусочки вставить свои битмапы. Сделать можно но надо определить порядок букв чтобы в эти же места вставить эти же буквы, надо определить размер 8х8 или 16х16 или 8х12 и под этот размер сгенерировать коды взяв какой нибудь шрифт. Либо найти утилиту которая официально создаёт такие шрифты, то есть найти простое решение, возможно утилита будет задавать диапазоны символов юникодного шрифта, изменять размеры (как это), а мы, долго отмучившись, сможем подстраиваться только под заданный диапазон и размер.
Установил пакет "unifont-bin", скачалось 40 Мб, пока не знаю как им пользоваться. Утилита unifont-viewer (в комплекте) не может открыть .bin, просит .hex, переименование не помогает. А вот обычный текстовый файл unifont.hex открыл.

[Цитировать]

    Kupr_Soft
  • 26917
  • Стаж: 3 года 2 месяца
  • Сообщений: 30
  • Репутация:16

    [+] [-]
  • Откуда: Питер
AZJIO, эм... боюсь настолько грамотно анализировать файл я не умею...
логику я примерно понимаю, но сам такое точно не проделаю... ai
ладно учитывая что результат ентого действа весьма сомнителен, а затраты существенны, наверное подожду немного ответа от разрабов... bc (пока поковыряюсь со всем остальным в сборке)
и если что просто оставлю как есть на русском вот таком кривом... ac

[Цитировать]

    Kupr_Soft
  • 26917
  • Стаж: 3 года 2 месяца
  • Сообщений: 30
  • Репутация:16

    [+] [-]
  • Откуда: Питер
Хе-хе... таки дошло моё письмо...
Thanks for your e-mail, and providing updated glyphs for Russian characters.
unifont.bin is essentially the data in the HEX file stored in binary format + header.
We'll attempt to integrate the updated glyphs into the unifont.bin, and send a new version shortly.

в общем говорит что спасиб,
мол файл у него бинарник но с заголовком (вот откуда смещение)
и типа мы добавим новые символы в прогу и скоро выпустим новую версию софтины...
В общем прислали мне переделанный файлик с правильным шрифтом...
если кому надо то вот выложил тут и саму программу и шрифт:
https://usbtor.ru/viewtopic.php?p=83107#83107

[Цитировать]

    Kupr_Soft
  • 26917
  • Стаж: 3 года 2 месяца
  • Сообщений: 30
  • Репутация:16

    [+] [-]
  • Откуда: Питер
у меня-то сделано
# Установка графического режима от 640х480:24 до 800х600:32 (перебирает какой можно использует)
#graphicsmode -1 640:800 480:600 24:32
Хм... теперь заинтересовал вопрос, а можно-ли как-то
(например в командной строке груба) узнать какое разрешение он взял...
при автоматическом варианте:
graphicsmode -1 100:1000 100:10000 24:32
картинку подсовывать нет смысла, по ней непонятно какое разрешение в итоге...
он просто её растянет получается или ужмёт...
и как я понимаю широкоформатные мониторы тут в пролёте по любому...
p.s. и следуя логике из моего примера получается что правильно будет написать как-то так:
# Установка графического режима от 640х480:24 до 1024х768:32 (перебирает какой можно использует)
graphicsmode -1 640:1024 480:768 24:32
(сделал, проверил, да этот вариант делает разрешение на 1024 =)
и виртуалка приняла даже 1920
graphicsmode -1 100:1920 100:10000 24:32
правда фоновую картинку (640х480) разместила странно

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 1 месяц
  • Сообщений: 1264
  • Репутация:127

    [+] [-]
Kupr_Soft, testvbe вроде тестирует режим, а vbeprobe выводит поддерживаемые, причём выводит код, а что он означает смотреть в таблице, можно найти в гугле. Уже не помню, может vbeprobe одновременно выводит текущий. Попробуй.
В справке указано, что vbeprobe [mode] выведет инфу о режиме

Страница 1 из 2


Показать сообщения:    

Текущее время: 29-Мар 02:32

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы