Что такое формат файла SMC?
Файлы с расширением .smc хранят образы ROM игр Super Nintendo. Название расширения происходит от Super MagiCom - устройства для копирования картриджей, выпускавшегося компанией Front Fareast Industrial и бывшего одним из самых популярных инструментов для дампинга ROM в свою эпоху. Копировщик считывал данные с картриджей и сохранял их в файлы .smc; для игр на нескольких картриджах создавались дополнительные файлы .smc с суффиксами .001, .002 и аналогичными. Каждый картридж содержал одну игру. Отличительной технической деталью является необязательный 512-байтовый заголовок копировщика, добавляемый перед необработанными данными ROM - эмуляторы обнаруживают его, проверяя, кратен ли размер файла 32 КБ плюс 512 байт, и автоматически пропускают его. Внутренний заголовок игры SNES находится по смещению 0x7FC0 (LoROM) или 0xFFC0 (HiROM) внутри данных картриджа; взаимозаменяемый вариант, .sfc, использует идентичные данные ROM, но не содержит этого заголовка копировщика. Аналогичные форматы дампов копировщиков включают .fig (копировщик Figaro) и .swc (Super Wild Card).
Файлы .smc в основном используются эмуляторами SNES (SNES расшифровывается как Super Nintendo Entertainment System). Эмуляторы SNES доступны для настольных ПК (Windows, macOS или Linux) и могут использоваться для игры в игры SNES, сохраненные в файлах .smc. Такие эмуляторы поддерживают различные контроллеры и режимы отображения, чтобы максимально точно воссоздать оригинальный опыт. Мобильные версии также доступны для Android и iOS. Самые популярные эмуляторы SNES, поддерживающие .smc:
- Snes9x (Windows, macOS, Linux, Android)
- RetroArch (Windows, macOS, Linux, Android, iOS)
- bsnes / higan (Windows, macOS, Linux)
- OpenEmu (macOS)
- Snes9x EX+ (Android)
- Delta (iOS)
Игровые образы .smc использовались для распространения пиратских игр, хотя формат был разработан для резервного копирования ROM игр на случай потери или повреждения данных картриджа или для частного обмена играми с другими пользователями. В Японии все инструменты, позволявшие копировать ROM игр, назывались «magicoms» - магические компьютеры.
Безопасность и защита
РИСК: MEDIUMСами данные ROM являются инертным игровым кодом, который запускается только внутри эмулятора, но существуют две реальные проблемы. Юридическая: загрузка ROM игр, которыми вы не владеете, является нарушением авторских прав в большинстве стран - законный путь заключается в дампинге собственных картриджей или игре в homebrew. Безопасность источников: «сайты с ROM» изобилуют рекламой, фальшивыми кнопками загрузки и встроенным вредоносным ПО, а старые эмуляторы (особенно ZSNES) имеют уязвимости парсинга - используйте современные точные эмуляторы (Snes9x, RetroArch, bsnes) и избегайте подозрительных порталов загрузки.
Детали формата
в двух словахПрограммы, открывающие файлы SMC
Технические подробности
глубокая спецификация| Структура файла | Необработанный дамп ROM картриджа, которому опционально предшествует 512-байтовый заголовок копировщика, добавленный оборудованием Super Magicom |
| Размер заголовка копировщика | 512 байт; наличие определяется проверкой, равен ли остаток от деления размера файла на 1024 числу 512 (общий размер кратен 32 КБ плюс 512 байт) |
| Внутренний заголовок SNES - смещение LoROM | 0x7FC0 внутри данных ROM; содержит название игры, тип ROM, байт размера и контрольную сумму |
| Внутренний заголовок SNES - смещение HiROM | 0xFFC0 внутри данных ROM; используется для больших картриджей с отображением адресов в высокой памяти |
| Поле названия игры | 21-байтовая строка ASCII с заполнением нулями, хранящаяся в начале внутреннего заголовка SNES |
| Контрольная сумма целостности ROM | 2-байтовая контрольная сумма и 2-байтовое побитовое дополнение, хранящиеся в заголовке SNES; используются эмуляторами для обнаружения поврежденных или избыточных дампов ROM |
| Режимы маппинга ROM | LoROM, HiROM, ExLoROM, ExHiROM - объявляются через один байт по смещению заголовка SNES +0x25 |
| Типичные размеры файлов | от 256 КБ до 6 МБ, что соответствует реальной емкости ROM картриджей SNES (от 256 Кбит до 48 Мбит) |
| Сигнатура файла (магические байты) | Отсутствует - фиксированной сигнатуры нет; формат идентифицируется эвристически по размеру файла и проверке контрольной суммы внутреннего заголовка SNES |
| Именование многотомных файлов | Дампы с несколькими картриджами создают сопутствующие файлы с суффиксами .001, .002 и аналогичными, добавляемыми после базового имени .smc |
| Сопутствующий файл сохранений | Резервная копия SRAM внутри игры, хранящаяся в отдельном файле .srm с тем же базовым именем, записываемая эмулятором во время работы |
| MIME-тип | application/octet-stream |
| Архитектура процессора | WDC 65C816 (16-бит); данные ROM .smc являются прямым образом памяти адресного пространства картриджа, каким его видит этот процессор |
| Происхождение оборудования | Копирующее устройство Super Magicom от Front Fareast Industrial (Тайвань, начало 1990-х); формат .smc впоследствии был принят как фактический стандарт сообщества для различных марок копировщиков |
| Обработка заголовков эмулятором | Snes9x, RetroArch, bsnes и большинство современных эмуляторов автоматически обнаруживают и удаляют 512-байтовый заголовок копировщика перед загрузкой ROM |
| Выпущен | early-mid 1990s (Super Magicom / copier era) |
| Спецификация | snes.nesdev.org |
Конвертации SMC
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах SMC.