Vad är filformatet SMC?
Filer med filtillägget .smc lagrar ROM-avbildningar av Super Nintendo-spel. Namnet på tillägget kommer från Super MagiCom, en enhet för att kopiera kassetter tillverkad av Front Fareast Industrial och ett av de mest populära verktygen för ROM-dumpning under sin tid. Kopieringsenheten läste data från kassetter och sparade den i .smc-filer; för spel med flera kassetter genererades ytterligare .smc-filer med tilläggen .001, .002 och liknande suffix. Varje kassett lagrade ett enskilt spel. En utmärkande teknisk detalj är det valfria kopieringshuvudet (header) på 512 byte som läggs till före rådata för ROM-filen - emulatorer upptäcker detta genom att kontrollera om filstorleken är en multipel av 32 KB plus 512 byte och hoppar automatiskt över det. Den interna spelheadern för SNES finns vid offset 0x7FC0 (LoROM) eller 0xFFC0 (HiROM) i kassettdata; en utbytbar variant, .sfc, använder identiska ROM-data men utelämnar detta kopieringshuvud. Liknande format för kopieringsdumpning inkluderar .fig (Figaro-kopierare) och .swc (Super Wild Card).
.smc-filer används främst av SNES-emulatorer (SNES står för Super Nintendo Entertainment System). SNES-emulatorer finns tillgängliga för stationära datorer (Windows, macOS eller Linux) och kan användas för att spela SNES-spel sparade i .smc-filer. Sådana emulatorer stöder olika handkontroller och visningslägen för att återskapa den ursprungliga upplevelsen så troget som möjligt. Mobilversioner finns också tillgängliga för Android och iOS. De mest populära SNES-emulatorerna som stöder .smc är:
- Snes9x (Windows, macOS, Linux, Android)
- RetroArch (Windows, macOS, Linux, Android, iOS)
- bsnes / higan (Windows, macOS, Linux)
- OpenEmu (macOS)
- Snes9x EX+ (Android)
- Delta (iOS)
.smc-spelavbildningar användes för att distribuera piratkopierade spel, även om formatet designades för att säkerhetskopiera spel-ROM-filer i händelse av förlust eller skada på kassettdata, eller för privat delning av spel med andra användare. I Japan kallades alla verktyg som tillät kopiering av spel-ROM-filer för «magicoms» - magiska datorer.
Säkerhet & trygghet
RISK: MEDIUMSjälva ROM-datan är inaktiv spelkod som endast körs inuti en emulator, men två verkliga orosmoment finns. Juridiskt: att ladda ner ROM-filer för spel du inte äger är ett upphovsrättsbrott i de flesta länder - den lagliga vägen är att dumpa dina egna kassetter eller spela «homebrew». Källsäkerhet: «ROM-sajter» är fyllda med annonser, falska nedladdningsknappar och medföljande skadlig kod, och gamla emulatorer (särskilt ZSNES) har sårbarheter i kodtolkningen - använd en aktuell, exakt emulator (Snes9x, RetroArch, bsnes) och undvik skumma nedladdningsportaler.
Formatdetaljer
i ett nötskalProgram som öppnar SMC-filer
Tekniska detaljer
djup specifikation| Filstruktur | Rå ROM-dump från kassett, valfritt föregången av ett 512-byte kopieringshuvud tillagt av Super Magicom-hårdvara |
| Storlek på kopieringshuvud | 512 byte; närvaro upptäcks genom att kontrollera om filstorleken mod 1 024 är lika med 512 (total storlek är en multipel av 32 KB plus 512 byte) |
| SNES intern header - LoROM offset | 0x7FC0 i ROM-data; innehåller speltitel, ROM-typ, storleksbyte och kontrollsumma |
| SNES intern header - HiROM offset | 0xFFC0 i ROM-data; används för större kassetter med mappning för högt minnesadressutrymme |
| Fält för speltitel | 21-byte nollutfylld ASCII-sträng lagrad i början av SNES interna header |
| Kontrollsumma för ROM-integritet | 2-byte kontrollsumma och 2-byte bitvis komplement lagrat i SNES-headern; används av emulatorer för att upptäcka korrupta eller felaktigt dumpade ROM-filer |
| ROM-mappningslägen | LoROM, HiROM, ExLoROM, ExHiROM - deklareras via en enskild byte vid SNES-headerns offset +0x25 |
| Typiska filstorlekar | 256 KB till 6 MB, vilket speglar faktiska SNES-kassetters ROM-kapacitet (256 Kbit till 48 Mbit) |
| Filsignatur (magic bytes) | Ingen - ingen fast signatur; formatet identifieras heuristiskt genom filstorleksmönster och validering av SNES interna kontrollsumma |
| Namngivning av filer i flera delar | Dumpar av spel med flera kassetter skapar följdfiler namngivna med .001, .002 och liknande suffix efter basnamnet .smc |
| Tillhörande sparfil | SRAM-säkerhetskopia i spelet lagras i en separat .srm-fil med samma basnamn, skriven av emulatorn vid körning |
| MIME-typ | application/octet-stream |
| CPU-arkitektur | WDC 65C816 (16-bitars); .smc-data är en direkt minnesavbildning av kassettens adressutrymme så som det ses av denna CPU |
| Ursprungshårdvara | Super Magicom-kopieringsenhet av Front Fareast Industrial (Taiwan, tidigt 1990-tal); .smc-formatet antogs därefter som en de facto-standard i communityn för flera kopieringsmärken |
| Emulatorens hantering av header | Snes9x, RetroArch, bsnes och de flesta moderna emulatorer upptäcker och tar bort 512-byte kopieringshuvudet automatiskt innan ROM-filen laddas |
| Släppt | early-mid 1990s (Super Magicom / copier era) |
| Specifikation | snes.nesdev.org |
SMC-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om SMC-filer.