O que é o formato de ficheiro ROM?
Arquivos .rom são arquivos de imagem de jogo usados por emuladores para executar jogos de console e computador. Um arquivo .rom é um dump byte a byte de um cartucho de jogo ou chip ROM - o termo «ROM» significa Read-Only Memory (Memória Somente de Leitura), referindo-se ao hardware original de onde os dados foram copiados.
Ao contrário de formatos dedicados como .n64 ou .smc, a extensão .rom é um rótulo genérico sem estrutura interna fixa ou magic bytes. Seu layout interno depende inteiramente de qual console ou computador o dump veio - um jogo de N64, um título de computador MSX, um cartucho ColecoVision e um jogo de Game Boy produzem layouts binários muito diferentes, embora cada um possa ser salvo como .rom.
Jogos para Nintendo 64 usam vários formatos intimamente relacionados junto com o .rom:
.n64- ordem de bytes little-endian.v64- ordem de bytes invertida (interleaved).z64- ordem de bytes big-endian (o formato nativo do N64)
Para abrir um arquivo .rom, você precisa de um emulador para o sistema correto. Para jogos de N64, as escolhas populares são Project64 e Mupen64Plus. O RetroArch e o OpenEmu suportam arquivos .rom de muitos sistemas diferentes através de seus sistemas de plug-ins de núcleo.
Como o .rom não carrega um identificador de sistema incorporado, alguns emuladores podem ser incapazes de detectar automaticamente a qual console o arquivo pertence e podem exigir configuração manual.
Segurança e proteção
RISCO: MEDIUMUma ROM de jogo são dados passivos que o emulador interpreta, portanto, o arquivo raramente é executado no seu SO real - mas existem riscos reais. Sites de download de ROM são fontes notórias de malware e falsos instaladores «roms.exe», portanto, use apenas fontes confiáveis e escaneie os downloads. Crucialmente, um .rom que é na verdade um firmware/BIOS é perigoso de outra forma: gravar a imagem de firmware errada em uma placa-mãe, GPU ou roteador pode inutilizar permanentemente o dispositivo - verifique se corresponde exatamente ao seu hardware antes de gravar. Legalmente, baixar ROMs protegidas por direitos autorais que você não possui é geralmente uma infração; fazer o dump de seus próprios cartuchos e usar ROMs homebrew/domínio público são caminhos mais seguros.
Detalhes do formato
em resumo- Imagem de Firmware / BIOS - BIOS/UEFI de placa-mãe, BIOS de vídeo de GPU (vBIOS), firmware de roteadores e dispositivos são frequentemente distribuídos como arquivos .rom gravados no chip - não são jogos.
- Option ROM / ROM de expansão - Placas de expansão de PC (rede, RAID, GPU) carregam uma imagem de option ROM, às vezes chamada de .rom, carregada pelo firmware do sistema na inicialização.
Programas que abrem arquivos ROM
Detalhes técnicos
especificação profunda| Codificação binária | Binário bruto - cópia não compactada, byte a byte, dos dados originais do cartucho ou chip |
| Estrutura interna | Dependente do sistema; sem cabeçalho universal ou layout fixo - o layout binário é ditado inteiramente pelo console ou computador de origem |
| Magic bytes / assinatura do arquivo | Nenhum; a extensão `.rom` não carrega uma assinatura de identificação fixa - a identificação depende do emulador ou do usuário |
| Variantes de ordem de bytes do N64 | Big-endian `.z64` (formato nativo MIPS R4300i), byte-swapped `.v64` e little-endian `.n64` - emuladores convertem entre eles ao carregar |
| Tipo MIME | `application/octet-stream` |
| Tamanho típico do arquivo | 256 KB - 64 MB dependendo do cartucho; a maioria dos títulos de N64 varia de 8 MB a 64 MB |
| Cobertura de conteúdo | Código executável completo do jogo, gráficos, áudio e dados de nível exatamente como armazenados no chip ROM original |
| Compressão | Nenhuma dentro do arquivo; usuários costumam arquivar arquivos `.rom` externamente em containers ZIP ou 7z |
| Ecossistema de extensões relacionadas | `.z64`, `.n64`, `.v64` (N64); `.smc` / `.sfc` (SNES); `.nes` (NES); `.gba` (GBA); `.gb` (Game Boy) |
| Suporte a ROM hacking | O arquivo pode ser modificado com editores hexadecimais ou corrigido usando utilitários de patch IPS/BPS, como Floating IPS ou beat |
| Identificação do sistema | Determinada pela configuração do emulador ou seleção do usuário - não incorporada no próprio arquivo `.rom` |
| Cabeçalho de cartucho N64 | Os primeiros 64 bytes codificam registradores PI BSD, taxa de clock, endereço de boot, nome do jogo (20 bytes), ID do cartucho (2 bytes) e código do país |
| Verificação de integridade CRC do N64 | ROMs de N64 contêm dois valores CRC de 32 bits nos offsets 0x10 (CRC1) e 0x14 (CRC2), verificados pela ROM de boot do console na inicialização |
| Contexto legal | Dumps de cartuchos pessoais são geralmente permitidos em muitas jurisdições; distribuir ou baixar ROMs de terceiros é tipicamente uma violação de direitos autorais |
| Lançado | with console/computer emulation (1990s onward) |
| Especificação | emulation.gametechwiki.com |