Что такое формат файла GB?
Файлы .gb представляют собой необработанные бинарные дампы ПЗУ (ROM) картриджей Nintendo Game Boy. Оригинальный Game Boy (модель DMG-001) был выпущен в Японии в апреле 1989 года, и расширение .gb стало стандартом сообщества для сохраненных копий чипов памяти картриджей.
Файл .gb - это прямой побайтовый образ банков ПЗУ картриджа без какого-либо контейнера или сжатия. Файл начинается с банка ПЗУ 0, который содержит векторы прерываний по адресу 0x0000, 4-байтовую точку входа NOP+JP по адресу 0x0100 и заголовок картриджа с 0x0100 по 0x014F. 48-байтовый растровый логотип Nintendo, начинающийся со смещения 0x0104, должен точно соответствовать фиксированному двоичному шаблону - BIOS Game Boy проверяет это при загрузке в качестве механизма защиты интеллектуальной собственности. 8-битная контрольная сумма заголовка по адресу 0x014D проверяется BIOS; 16-битная глобальная контрольная сумма по адресам 0x014E-0x014F носит чисто информационный характер и не проверяется оборудованием.
Размеры ПЗУ варьируются от 32 КБ (простые картриджи) до 8 МБ для игр, использующих контроллеры банков памяти (MBC1, MBC3, MBC5). Данные сохранений с поддержкой батарейки хранятся отдельно в виде файлов .sav или .srm, но никогда внутри самого файла .gb.
Игры, улучшенные для Game Boy Color, имеют байт заголовка 0x0143, установленный в значение 0x80 (совместимо с GBC) или 0xC0 (только для GBC). Для игр, предназначенных исключительно для GBC, традиционно используется расширение .gbc.
Безопасность и защита
РИСК: MEDIUMФайл ПЗУ .gb представляет собой инертные бинарные данные и не может быть исполнен на ПК. Риск носит юридический характер: скачивание коммерческих игр Game Boy, которыми вы не владеете, является нарушением авторских прав в большинстве стран. Сайты с ROM-файлами часто содержат рекламное ПО, поддельные кнопки загрузки и иногда вредоносные установщики. Законные способы: создание дампов собственных картриджей с помощью дампера (например, GB Operator, Epilogue).
Детали формата
в двух словах- GenBank Sequence File - NCBI GenBank использует расширение .gb для файлов последовательностей ДНК/РНК в плоском формате GenBank; совершенно не связано с играми.
Программы, открывающие файлы GB
Технические подробности
глубокая спецификация| Контейнер | Отсутствует - необработанный дамп ПЗУ картриджа без файловой системы или структуры оболочки |
| Порядок байтов | Big-endian (архитектура процессора Z80/SM83; многобайтовые значения заголовка хранятся в формате big-endian) |
| Сжатие | Отсутствует на уровне файла; отдельные игры могут сжимать внутренние ресурсы независимо |
| Диапазон размеров ПЗУ | От 32 КБ (картриджи только с банком 0) до 8 МБ (картриджи MBC5 с максимальным переключением банков) |
| Точка входа | 4-байтовая инструкция NOP + JP по смещениям `0x0100`-`0x0103` |
| Проверка логотипа Nintendo | 48-байтовый растр по адресу `0x0104`-`0x0133`; BIOS проверяет точное соответствие при каждой загрузке |
| Контрольная сумма заголовка | 8-битная контрольная сумма по адресу `0x014D`, охватывающая байты `0x0134`-`0x014C`; проверяется BIOS - несоответствие предотвращает загрузку |
| Глобальная контрольная сумма | 16-битная сумма по адресу `0x014E`-`0x014F`; охватывает все остальные байты ПЗУ; только для информации, не проверяется оборудованием |
| Флаг совместимости CGB | Байт `0x0143`: `0x80` = игра DMG, совместимая с GBC; `0xC0` = только для GBC; `0x00` = только для DMG |
| Переключение банков памяти | Тип MBC определяется в байте заголовка `0x0147`; типы включают MBC1, MBC2, MBC3, MBC5 |
| Данные сохранений | ОЗУ с поддержкой батарейки хранится отдельно в виде файлов `.sav` или `.srm`; не встраивается в файл `.gb` |
| Разрешение экрана | 160×144 пикселей (свойство оборудования; не хранится в файле ПЗУ) |
| Выпущен | 1989 (Game Boy DMG launch, Japan) |
| Последняя версия | N/A (fixed hardware format; no versioning) |
| Спецификация | gbdev.io |
Конвертации GB
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах GB.