Разбираем раздел BMP3 в файле sd.bin

Программное обеспечение ГУ, Загрузочные носители, и всё что с ними связано.
edwardy
Сообщения: 144
Зарегистрирован: 19 мар 2017, 13:13
Откуда: Находка

Разбираем раздел BMP3 в файле sd.bin

Сообщение edwardy »

Основная интерфейсная графика находится в файле sd.bin. В этом файле, в разделе BMP3 собрана основная часть - интересная с точки зрения локализации. В 56095 BMP3 раздел начинается с адреса 186000h
bmp3start1.png
Первые четыре байта - размер всего раздела.
Далее идёт заголовок блоков в котором под каждую запись выделено 8 байт:
2 байта - номер блока;
3 байта - смещение блока относительно начала заголовка блоков;
3 байта - размер блока.
Заголовок блоков заканчивается строкой FF FF FF FF FF FF FF FF
Блок состоит из контейнеров изображений и устроен аналогично заголовку блоков. Те же 2 байта номер контейнера, 3 байта смещение относительно заголовка, 3 байта - размер, и заканчивается так же - FF FF FF FF FF FF FF FF
edwardy
Сообщения: 144
Зарегистрирован: 19 мар 2017, 13:13
Откуда: Находка

Разбираем раздел BMP3 в файле sd.bin

Сообщение edwardy »

Контейнер устроен очень просто:
cont1.png
Первые четыре байта - сигнатура или версия сжатия. Не меняется в разделе BMP3. Значение всегда 03ff00ffh/
Следующие 4 байта - размер распакованных bmp данных.
Ещё 4 байта - размер самого контейнера или сжатых данных.

Распаковывается по алгоритму из этой темы viewtopic.php?f=5&t=39#p710, спасибо bellic
Для обратной упаковки алгоритма сжатия пока нет поэтому я использую вот такой костыль:
conteiner.png
через каждые восемь байт вставляется контрольный байт 00h, который указывает распаковщику, что следующие 8 байт не сжимаются. Идея не моя а пользователя с лексус клуба с ником grem. При этом нужно учитывать, что размер и так не сжатого bmp ещё увеличивается процентов на 12. Увеличивать же размер файла sd.bin бесконтрольно тоже нельзя. Он имеет свою область в оперативной памяти, и может перекрыть соседний блок.
Аватара пользователя
bellic
Сообщения: 1452
Зарегистрирован: 11 мар 2017, 07:47
Откуда: Rostov-on-Don
Контактная информация:

Разбираем раздел BMP3 в файле sd.bin

Сообщение bellic »

edwardy, у тебя хорошо получается разбирать и раскладывать по "полочкам"... :good:
(правда я не проверял твои выкладки...)
...
А вот как ты нашел для магнитолы "56095" этот адрес BMP3-раздела 186000h?
Это скорее не вопрос, а предложение - поискать этот адрес.. ;)
...
Я сделал следующее:
Прибавил к значению 186000h начальный адрес размещения твоего модуля SD.BIN в памяти
(он там равняется 88730000) и получил 888B6000 (все естественно в HEX)

Ну и поиском нашел это смещение в SD.BIN:
sd1.jpg
Там видны названия и других таблиц и видимо их смещения тоже имеются... :oops:

А вот я для примера выложил примерно это же место в SD-модуле для магнитолы NSZT-W62G:
sd_my.jpg
Т.к. в моем модуле начальный адрес размещения другой, соответственно и смещение до таблицы немного другое (выделено)

Ну и мой SD.BIN на случай если захочешь посмотреть адреса и таблицы в живую:
SD.7z
(14.63 МБ) 558 скачиваний
edwardy
Сообщения: 144
Зарегистрирован: 19 мар 2017, 13:13
Откуда: Находка

Разбираем раздел BMP3 в файле sd.bin

Сообщение edwardy »

В твоем случае смещение BMP3 396000h. Адрес где оно прописано 774h
edwardy
Сообщения: 144
Зарегистрирован: 19 мар 2017, 13:13
Откуда: Находка

Разбираем раздел BMP3 в файле sd.bin

Сообщение edwardy »

Есть еще место с графикой - это папка SD рядом с PRG. В ней может быть несколько файлов, например в моей есть только BMP3.SD. Структура этого файла полностью совпадает со структурой раздела BMP3 в файле sd.bin. Сегодня попробую развернуть. Посмотрю, есть ли там что-нибудь кроме значков.
Аватара пользователя
bellic
Сообщения: 1452
Зарегистрирован: 11 мар 2017, 07:47
Откуда: Rostov-on-Don
Контактная информация:

Разбираем раздел BMP3 в файле sd.bin

Сообщение bellic »

edwardy писал(а):
10 июл 2022, 22:47
В твоем случае смещение BMP3 396000h. Адрес где оно прописано 774h
По моим подсчетам ты ошибся!
В моем случае BMP3 в самом файле находится по смещению BA6000h, с учетом расположения в RAM (Offset SD.BIN in RAM = 89FE0000h) - 8AB86000h, и данная константа расположена по адресу 75Ch.

P.S. Если что - могу расписать как получил эти цифры!
edwardy
Сообщения: 144
Зарегистрирован: 19 мар 2017, 13:13
Откуда: Находка

Разбираем раздел BMP3 в файле sd.bin

Сообщение edwardy »

У тебя в файле 3 раздела:
BMP2 начало 6000h конец 36A010h
BMP3 начало 396000h размер 7E3770h конец B79770h
BMP4 начало BA6000h.
Возможно есть еще что-то до конца не проверял. Находится визуально. Потом проверяется, что такие цифры есть в таблице.
Аватара пользователя
bellic
Сообщения: 1452
Зарегистрирован: 11 мар 2017, 07:47
Откуда: Rostov-on-Don
Контактная информация:

Разбираем раздел BMP3 в файле sd.bin

Сообщение bellic »

edwardy писал(а):
11 июл 2022, 09:36
У тебя в файле 3 раздела:
BMP2 начало 6000h конец 36A010h
BMP3 начало 396000h размер 7E3770h конец B79770h
BMP4 начало BA6000h.
Возможно есть еще что-то до конца не проверял. Находится визуально. Потом проверяется, что такие цифры есть в таблице.
Не претендую на правильность, но я делал так:

1. Открываю свой LOADING.KWI в JRemaker-ре и получаю из него адрес начала BMP3 - 31F3904h
my_sd.jpg
my_sd.jpg (78.95 КБ) 10027 просмотров

2. Открыв LOADING.KWI в WinHEX-се перехожу на этот адрес (31F3904h) и копирую 4 байта 0112147Ch начала таблицы:
wh.jpg

3. Открываю распакованный из Лоадинга файл SD.BIN и ищу эту последовательность из 4-х байтов:
sea.jpg
Она нашлась по адресу BA6000h


4. Ну и дальше - плюсуем к ней Начальный адрес в РАМ, получаем 8Ab86000h, которое находится по адресу 75Сh
str.jpg

Не видно только BMP5... А он в JRemaker-ре указан... но это может быть его так назвал автор..))
Аватара пользователя
bellic
Сообщения: 1452
Зарегистрирован: 11 мар 2017, 07:47
Откуда: Rostov-on-Don
Контактная информация:

Разбираем раздел BMP3 в файле sd.bin

Сообщение bellic »

Аналогично "пробивается" и твой SD.BIN...
я собственно с проверки твоего файла и начал, ...
Аватара пользователя
bellic
Сообщения: 1452
Зарегистрирован: 11 мар 2017, 07:47
Откуда: Rostov-on-Don
Контактная информация:

Разбираем раздел BMP3 в файле sd.bin

Сообщение bellic »

Блин, только сейчас заметил, что в JRemaker-ре BMP5 копирует BMP3 !!! :shock:
my_sd2.jpg
my_sd2.jpg (14.23 КБ) 10025 просмотров
Ответить

Вернуться в «Программное обеспечение.»

Кто сейчас на конференции

Сейчас этот форум просматривают: Google и 100 гостей