Wat is het SMC-bestandsformaat?
Bestanden met de extensie .smc slaan Super Nintendo game ROM-images op. De naam van de extensie is afgeleid van Super MagiCom, een apparaat voor het kopiëren van cassettes gefabriceerd door Front Fareast Industrial en een van de populairste ROM-dumpingtools uit die tijd. De kopieermachine las gegevens van cassettes en sloeg deze op in .smc-bestanden; voor spellen met meerdere cassettes werden extra .smc-bestanden gegenereerd met een toegevoegd achtervoegsel zoals .001, .002 en dergelijke. Elke cassette bevatte één spel. Een kenmerkend technisch detail is de optionele 512-byte kopieerheader die vóór de ruwe ROM-gegevens wordt geplaatst - emulators detecteren deze door te controleren of de bestandsgrootte een veelvoud is van 32 KB plus 512 bytes en slaan deze automatisch over. De interne SNES-gameheader bevindt zich op offset 0x7FC0 (LoROM) of 0xFFC0 (HiROM) binnen de cassettegegevens; een uitwisselbare variant, .sfc, gebruikt identieke ROM-gegevens maar laat deze kopieerheader weg. Vergelijkbare kopieerformaten zijn onder meer .fig (Figaro-kopieerapparaat) en .swc (Super Wild Card).
.smc-bestanden worden voornamelijk gebruikt door SNES-emulators (SNES staat voor Super Nintendo Entertainment System). SNES-emulators zijn beschikbaar voor desktop-pc (Windows, macOS of Linux) en kunnen worden gebruikt om SNES-spellen te spelen die zijn opgeslagen in .smc-bestanden. Dergelijke emulators ondersteunen verschillende controllers en weergavemodi om de originele ervaring zo dicht mogelijk te benaderen. Mobiele versies zijn ook beschikbaar voor Android en iOS. De populairste SNES-emulators die .smc ondersteunen zijn:
- Snes9x (Windows, macOS, Linux, Android)
- RetroArch (Windows, macOS, Linux, Android, iOS)
- bsnes / higan (Windows, macOS, Linux)
- OpenEmu (macOS)
- Snes9x EX+ (Android)
- Delta (iOS)
.smc-game-images werden gebruikt om illegale spellen te verspreiden, hoewel het formaat was ontworpen voor het maken van back-ups van game-ROM's in geval van verlies of beschadiging van cassettegegevens, of voor het privé delen van spellen met andere gebruikers. In Japan werden alle tools waarmee game-ROM's konden worden gekopieerd aangeduid als magicoms - magische computers.
Beveiliging & veiligheid
RISICO: MEDIUMDe ROM-gegevens zelf zijn inerte spelcode die alleen binnen een emulator draait, maar er zijn twee reële zorgen. Juridisch: het downloaden van ROM's van spellen die u niet bezit is in de meeste landen een inbreuk op het auteursrecht - de wettelijke weg is het dumpen van uw eigen cassettes of het spelen van homebrew. Bronveiligheid: „ROM-sites” staan vol met advertenties, valse downloadknoppen en gebundelde malware, en oude emulators (met name ZSNES) hebben kwetsbaarheden in de verwerking - gebruik een actuele, nauwkeurige emulator (Snes9x, RetroArch, bsnes) en vermijd schimmige downloadportals.
Formaatdetails
in een notendopProgramma's die SMC-bestanden openen
Technische details
diepe specificaties| Bestandsstructuur | Ruwe cassette ROM-dump, optioneel voorafgegaan door een 512-byte kopieerheader toegevoegd door de Super Magicom-hardware |
| Grootte kopieerheader | 512 bytes; aanwezigheid gedetecteerd door te controleren of bestandsgrootte mod 1.024 gelijk is aan 512 (totale grootte is een veelvoud van 32 KB plus 512 bytes) |
| Interne SNES-header - LoROM offset | 0x7FC0 binnen de ROM-gegevens; bevat speltitel, ROM-type, grootte-byte en checksum |
| Interne SNES-header - HiROM offset | 0xFFC0 binnen de ROM-gegevens; gebruikt voor grotere cassettes met high-memory address mapping |
| Veld voor speltitel | 21-byte met nullen opgevulde ASCII-tekenreeks opgeslagen aan het begin van de interne SNES-header |
| ROM-integriteitschecksum | 2-byte checksum en 2-byte bitwise complement opgeslagen in de SNES-header; gebruikt door emulators om corrupte of overdumped ROM's te detecteren |
| ROM-mappingmodi | LoROM, HiROM, ExLoROM, ExHiROM - gedeclareerd via een enkele byte op SNES-header offset +0x25 |
| Typische bestandsgroottes | 256 KB tot 6 MB, overeenkomend met de werkelijke SNES-cassette ROM-capaciteiten (256 Kbit tot 48 Mbit) |
| Bestandssignatuur (magic bytes) | Geen - geen vaste signatuur; formaat heuristisch geïdentificeerd door bestandsgroottepatroon en validatie van de interne SNES-headerchecksum |
| Naamgeving van meerdelige bestanden | Dumps van meerdere cassettes produceren bijbehorende bestanden met de achtervoegsels .001, .002 en dergelijke, toegevoegd na de .smc-basisnaam |
| Bijbehorend opslagbestand | In-game SRAM-back-up opgeslagen in een apart .srm-bestand met dezelfde basisnaam, geschreven door de emulator tijdens runtime |
| MIME-type | application/octet-stream |
| CPU-architectuur | WDC 65C816 (16-bit); de .smc ROM-gegevens zijn een directe geheugenimage van de adresruimte van de cassette zoals gezien door deze CPU |
| Oorspronkelijke hardware | Super Magicom kopieerapparaat door Front Fareast Industrial (Taiwan, begin jaren 90); het .smc-formaat werd vervolgens aangenomen als een de facto gemeenschapsstandaard voor meerdere kopieermerken |
| Header-afhandeling door emulator | Snes9x, RetroArch, bsnes en de meeste moderne emulators detecteren en verwijderen automatisch de 512-byte kopieerheader voordat de ROM wordt geladen |
| Uitgebracht | early-mid 1990s (Super Magicom / copier era) |
| Specificatie | snes.nesdev.org |
SMC conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over SMC-bestanden.