Unified Emulator Format
Filnamnstillägg |
.uef
|
---|---|
Internet mediatyp |
applikation/oktettström
|
Magiskt nummer | UEF-fil! |
Utvecklad av | Thomas Harte |
Initial release | före den 10 augusti 2000 |
Senaste släppningen | 0,10 utkast 28 10 januari 2006 |
Typ av format | Datoremulering |
Behållare för | 8-bitars datordata |
Hemsida | http://electrem.emuunlim.com/UEFSpecs.html |
Unified Emulator Format ( UEF ) är ett containerformat för komprimerad lagring av ljudband , ROM , disketter och ögonblicksbilder av maskintillstånd för 8-bitarsserien av datorer som tillverkas av Acorn Computers . Först implementerad av Thomas Hartes ElectrEm-emulator och relaterade verktyg, stöds den nu av stora emulatorer av Acorn-maskiner och bärs av två onlinearkiv av Acorn-programvara som omfattar tusentals titlar.
UEF försöker koncist reproducera mediaburna signaler snarare än bara de data som representeras av dem, avsikten är ett korrekt arkiv av originalmedia snarare än bara en förmåga att reproducera filer lagrade på dem. Ett urval av metadata kan inkluderas, såsom kompatibilitetsklassificeringar, positionsmarkörer, bilder på förpackningar och texten i bruksanvisningarna.
Acorn-maskinerna implementerar Kansas City-standarden (KCS) för banddatakodning och som ett resultat är filformatet lämpligt för att skapa säkerhetskopior av originalmedia för flera icke-Acorn-maskiner. Från och med version 0.10 bär filformatet också BASICODE- signaler.
TZX är ett chunkformat med liknande räckvidd för ZX Spectrum- serien.
Historia
Före utvecklingen av UEF hade arkiv av Acorn-datorprogramvara på World Wide Web antagit en konvention om att lagra ZIP- arkiv av råfilerna på ett band, varje råfil åtföljs av en sidofil med filändelsen .inf
, som bär lasten och exekveringsadresser från filhuvudet. INF-konventionen, beskriven och implementerad av Wouter Scholten i bbcim (1995), utökar utdataformatet för *INFO
-kommandot (inbyggt i Acorn DFS och ADFS , som listar fillängder och annan metadata bifogad till filer på skivan) för att täcka CRC och ordningen på filerna på band. Även om det fungerar adekvat för att lagra användarfiler, bevarar det inte överföringshastigheten för inspelningen, exakt tidsinformation eller de icke-standardiserade dataströmmar som används i kopieringsskyddade titlar.
När det gäller skivbaserad programvara blev det allt bekvämare att skicka en sektordump av skivan istället, och vid tiden för UEF:s införande var filtilläggen .ssd och
.dsd redan
etablerade för enkelsidigt och dubbelsidigt råbilder av DFS-skivor, respektive. Distribuerade bara eller i ett ZIP-arkiv, de är fortfarande populära på arkivsajter.
Mål
I ett inlägg på Stardot-forumet från 2010 förklarade Harte utförligt sina skäl för att skapa formatet: eftersom han var den första som tog upp emulering av Acorn Electron och dess primära medium, tejp, ville Harte ha en finkornig och tekniskt optimal representation av media, jämfört med befintliga ad hoc-format; och att paketera de multipla medieelementen i en mjukvaruversion till en enda fil, så att nedladdning av en UEF är "mer som att få den ursprungliga produkten". Han fortsatte med att observera att det var verktygen som användes, och "användarens behov", som avgjorde den faktiska användningen som UEF hade använts till.
Strukturera
rubrik med fast längd som identifierar sig själv, följt av en länkad lista med bitar som innehåller data av intresse. Rubriken består av den magiska strängen UEF File!
, ett avslutande nolltecken och tvåbyteversionsnumret för UEF-specifikationen som används. En läsapplikation måste vara uppmärksam på versionsnumret, eftersom måttenheten i vissa bitar skiljer sig beroende på specifikationsversionen, och en bit har omdefinierats mellan versionerna.
Varje bit består av ett tvåbyte- ID som bestämmer dess betydelse, längden på kroppen i fyra byte och själva kroppen . En ansökan kan enkelt hoppa över de kroppar av bitar som den inte behöver bearbeta. Efter den sista biten slutar filen helt enkelt. För närvarande häckar inte UEF-bitar.
Hela UEF-filen, inklusive rubriken, kan valfritt komprimeras i gzip -format. Genom att undersöka starten av filen för en gzip- eller UEF-huvud kan ett dekomprimeringsbibliotek anropas efter behov.
Innehåll
Unified Emulator Format modellerar mjukvara på kassett som en sammanhängande sekvens av segment, som kan vara bärartoner , de modulerade asynkrona signalerna från vanliga datablock, säkerhetscykler (modulerade synkrona signaler, sägs vara en "identifieringsfunktion") eller luckor där ingen identifierad signal finns. UEF-bandbitar är sammanlänkade i den ordning de visas, för att bygga upp representationen av en hel inspelning. När den genereras från ett verkligt källband, motsvarar varje vågform på bandet direkt en bandklump, så att källan kan rekonstrueras korrekt (med eventuella icke-kodningsbara signaler ersatta av gap av samma längd.)
Standard Acorn-strömmar (chunk ID: 0x0100) är kodade så att deras byte återkommer i UEF-chunk-kroppen. Från version 0.10 utökas direktstödet till alla asynkrona format (0x0104) inklusive 8,N,2-
formatet BASICODE. Annars finns det en generisk bit (0x0102) för att rymma valfri godtycklig sekvens av bitar. Säkerhetsvågsbitar (0x0114) bär också bitströmmar, kodade i en annan form för att tillåta att de halvlånga en-bitarna som observeras i kommersiella inspelningar representeras.
Det finns några modala variabler som påverkar tolkningen av dessa bitar: baudhastigheten, 1200 baud för Acorn-signaler eller 300 baud för KCS; den exakta bärfrekvensen, som bestämmer speltiden för det rekonstruerade bandet; och signalens fas . De två sistnämnda kan ändras inom en publicerad inspelning, och deras absoluta värden beror på bandspelaren, förstärkaren och ljudkortet som används för att digitalisera signalen.
En UEF-fil kan innehålla markörer för att separera banden på en distribution med flera band och sidorna på varje band; positioner av intresse inom varje sida kan också markeras.
Skivor lagras som råsektordumpar för varje yta, tillsammans med deras geometri och en byte som identifierar filsystemet . Tidigare versioner av specifikationen hade bestämmelser för att koda skivor på nivån för byteström, eller den magnetiska domännivån . Med SSD- och DSD-sektordumpar som tjänar vanliga BBC-skivor väl, och det mogna FDI-formatet för kopieringsskyddad programvara, används skivbildsfunktionen för UEF föga.
Sideways ROMs lagras också som rådata, plus en indikation på deras syfte och en ROM-platsrekommendation. Återigen föredrar användarbasen blotta ROM-dumpar för arkivering.
State snapshot UEF-filer inkluderar standardiserade bitar för att lagra huvuddelarna av en Acorn Electron eller BBC Micros tillstånd: huvud-, skugg- och expansionsbussminne, CPU och WD1770-diskettenhetskontrollern; även Electron ULA och Slogger Master RAM Board, ett vanligt Electron-tillägg. En patch-minnesbit skriver om ett minnesblock på vilken adress som helst, vilket gör att UEF-formatet kan paketera pokes . För att lagra tillståndselement som inte ryms i standardbitarna, kan emulatorer definiera sina egna bitar. Ett område för privat användning av chunk-ID:n är reserverat för detta eller något annat ändamål, även om vissa emulatorer sparar tillstånd under ogiltiga chunk-ID:n i det offentliga rummet.
Multiplexerad data är en tillägg för emulatorer, som används av ElectrEm men utan en publicerad specifikation:
Bitmultiplexering förser emulatorn med ytterligare information så att gamla program kan köras för att producera en högre utdatakvalitet. Den här funktionen är egentligen bara för emuleringsanvändning av UEF-filer och att ignorera bitmultiplexering kommer inte att ha någon effekt på ditt verktygs noggrannhet i förhållande till den ursprungliga hårdvaran.
— Thomas Harte, UEF Filformat Specs 0.10 (dokumentutkast 28)
En framträdande applikation som nämns av Harte är att lägga "ny grafik på gamla spel", och ett enda exempel, en 256-färgs förbättrad Daredevil Dennis , är tillgänglig från StairwayToHell.com för att köras i ElectrEm.
Multiplexa databitar är avsedda att följa vanliga databitar i någon av ovanstående klasser och kompletterar data. Deras innehåll är inte tänkt att vara synligt för Acorn-datorn, vare sig det är verkligt eller emulerat, men i övrigt har deras betydelse inte specificerats.
Bitar som tillhandahåller innehållsinformation inkluderar filens ursprungsbit , som identifierar applikationen som genererade UEF-filen. Inläggsskanningsbitar , avsedda som en förhandsgranskning av filer, innehåller en rå bitmapp av omslagsbilden även om allt utöver en miniatyr kan ta upp mer data än ett typiskt spel. UEF-författaren kan också tillhandahålla texten till ett instruktionshäfte eller en URL för mer information, en kort titel för visning, minsta maskinspecifikation och tangentbordsmappning för den bifogade programvaran; och där ett spel inte använder hela skärmen kan koordinaterna för det synliga området anges. En minoritet av UEF-filer som är tillgängliga online innehåller allt i denna klass utom en ursprungsbit.
En UEF-fil kan innehålla flera klasser av data samtidigt, som Harte tänkt sig; det är inte möjligt att veta vilka klasser den innehåller utan att skanna hela filen. I sin filvalsruta visar ElectrEm en ikon enligt den första dataklassbiten den hittar.
Ansökningar
MakeUEF
MakeUEF är en Windows-applikation skriven av Thomas Harte och utökad av Fraser Ross för att konvertera ljudprover till UEF-filer. Två betyg erbjuds. En "amatör"-version läser WAV -filer eller en livesignal som spelas upp på ljudkortet och transkriberar endast standarddatablock med noggrannhet. Den "professionella" graden accepterar endast CSW-filer, som representerar vågor förbehandlade till rektangulära pulståg , men den kodar all ljudinformation som stöds av UEF-specifikationen.
MakeUEF påstår sig ha varit den enda skaparen av alla UEF-filer tillgängliga på webben före november 2004, månaden då version 1.0 släpptes. Även om filformatet var mer kapabelt och stödde "gap lengths" senast sedan februari 2001, behöll MakeUEF endast "programdata" före version 1.0. Från november 2004 förbättrades MakeUEFs trohet och filspecifikationen förfinades ytterligare, och en förlängning av .hq.uef
("hög kvalitet") antogs för att återspegla detta. AcornPreservation.org-arkivet innehåller bara HQ.UEF-varianten såväl som CSW-källfilerna. Dess systersajt StairwayToHell.com accepterar "amatör" UEF-översättningar och filer producerade av MakeUEF före 1.0. Från och med 2008 är den senare platsen värd för 1 494 transkriptioner av BBC Micro-kassetttitlar och minst 800 Electron-titlar.
Andra
- Flera emulatorer av Acorn-maskiner stödjer UEF inbyggt, för att läsa och skriva banddata (med originalhastighet eller snabbare) och lagra tillståndsbilder. Exempel inkluderar ElectrEm, BeebEm och B-Em.
- FreeUEF av Thomas Harte och UEFReader Java Sound-plugin konverterar en UEF-fil till en våg som lämpar sig för inspelning på band eller uppspelning till en fysisk dator.
- UberCassette är plattformsoberoende kodare i flera format som avger UEF från prover av Acorn-kassetter.
- UEFwalk Perl -skriptet validerar och extraherar data från UEF-filer.
- XVUEF-patchen utökar Xv -bildredigeraren för att stödja de lite använda inläggsskanningsbitarna i UEF.
Använd på riktiga BBC Micros
GoMMC- och GoSDC-hårdvarutilläggen, producerade av John Kortink från 2004, ger en virtuell kassettuppspelningsmöjlighet. De medföljande PC-verktygen importerar kassettdata från UEF-filer och lagrar den extraherade kassettströmmen på ett minneskort.
I februari 2012 släppte Martin Barr version 5.0 av UPURS, en ROM-baserad uppsättning verktyg för att underlätta dataöverföring till riktiga BBC-mikrodatorer. Som en del av den versionen såg verktyget UPCFS sin första utgåva som möjliggjorde en påstådd kompatibilitetsgrad på 86 % med befintliga dekomprimerade UEF-filer, vilket gör att de kan överföras till en riktig BBC Micro med hjälp av en anpassad användarportkabel som presenterar en RS-232-kapabel anslutning till en PC.