Ujednolicony format emulatora
Rozszerzenie nazwy pliku |
uef
|
---|---|
Rodzaj mediów internetowych |
aplikacja/strumień oktetu
|
magiczny numer | Plik UEF! |
Opracowany przez | Tomasza Harte'a |
Pierwsze wydanie | przed 10 sierpnia 2000 r |
Najnowsze wydanie | 0.10 wersja robocza 28 10 stycznia 2006 r |
Typ formatu | Emulacja komputera |
Pojemnik na | 8-bitowe dane komputerowe |
Strona internetowa | http://electrem.emuunlim.com/UEFSpecs.html |
Unified Emulator Format ( UEF ) to format kontenera do skompresowanego przechowywania taśm audio , ROM-ów , dyskietek i migawek stanu maszyny dla 8-bitowej gamy komputerów produkowanych przez Acorn Computers . Po raz pierwszy zaimplementowany przez emulator ElectrEm Thomasa Harte'a i powiązane narzędzia, jest teraz obsługiwany przez główne emulatory maszyn Acorn i przenoszony przez dwa internetowe archiwa oprogramowania Acorn obejmujące tysiące tytułów.
UEF stara się zwięźle odtworzyć sygnały przenoszone przez media, a nie tylko reprezentowane przez nie dane, przy czym intencją jest dokładne archiwum oryginalnych nośników, a nie tylko możliwość odtwarzania przechowywanych na nich plików. Można dołączyć wybrane metadane , takie jak oceny kompatybilności, znaczniki pozycji, obrazy opakowań i tekst instrukcji obsługi.
Maszyny Acorn implementują standard Kansas City (KCS) do kodowania danych na taśmach, dzięki czemu format pliku jest odpowiedni do tworzenia kopii zapasowych oryginalnych nośników dla kilku maszyn innych niż Acorn. Od wersji 0.10 format pliku przenosi również sygnały BASICODE .
TZX to podzielony na części format o podobnym zakresie dla serii ZX Spectrum .
Historia
Przed opracowaniem UEF archiwa oprogramowania komputerowego Acorn w sieci World Wide Web przyjęły konwencję hostowania archiwów ZIP nieprzetworzonych plików na taśmie, przy czym każdemu plikowi surowemu towarzyszył plik dodatkowy z rozszerzeniem .inf
, przenoszący ładunek i adresy wykonania z nagłówka pliku. Konwencja INF, opisana i zaimplementowana przez Woutera Scholtena w bbcim (1995), rozszerza format wyjściowy polecenia *INFO
(wbudowanego w Acorn DFS i ADFS , który zawiera listę długości plików i innych metadanych dołączonych do plików na dysku) w celu uwzględnienia CRC i kolejności plików na taśmie. Chociaż działa odpowiednio do przechowywania plików użytkownika, nie zachowuje transmisji nagrania, dokładnych informacji o taktowaniu ani niestandardowych strumieni danych używanych w tytułach chronionych przed kopiowaniem.
W przypadku oprogramowania opartego na dyskach coraz wygodniejsze stało się wysyłanie zamiast tego zrzutu sektora dysku, a do czasu wprowadzenia UEF rozszerzenia plików .ssd i
.dsd były
już ustalone dla jednostronnego i dwustronnego surowe obrazy odpowiednio dysków DFS. Rozpowszechniane same lub w archiwum ZIP, pozostają popularne na stronach archiwów.
Celuje
W poście na forum Stardot z 2010 roku Harte obszernie wyjaśnił powody, dla których stworzył format: będąc pierwszym, który zajął się emulacją Acorn Electron i jego podstawowego nośnika, taśmy, Harte chciał drobnoziarnistej i technicznie optymalnej reprezentacji mediów, w porównaniu z istniejącymi formatami ad hoc; oraz spakowanie wielu elementów multimedialnych wersji oprogramowania w jeden plik, tak aby pobranie UEF „bardziej przypominało uzyskanie oryginalnego produktu”. Następnie zauważył, że to używane narzędzia i „potrzeba użytkownika” determinowały faktyczne zastosowania UEF.
Struktura
składa się z nagłówka o stałej długości , który się identyfikuje, po którym następuje połączona lista fragmentów zawierających interesujące dane. Nagłówek zawiera magiczny łańcuch Plik UEF!
, kończący znak null i dwubajtowy numer wersji używanej specyfikacji UEF. Aplikacja czytająca musi zwracać uwagę na numer wersji, ponieważ jednostka miary w niektórych porcjach różni się w zależności od wersji specyfikacji, a jedna porcja została ponownie zdefiniowana między wersjami.
Każdy fragment składa się z dwubajtowego identyfikatora , który określa jego znaczenie, długość treści w czterech bajtach i samą treść . Aplikacja może z łatwością pominąć treść fragmentów, których nie musi przetwarzać. Po ostatniej porcji plik po prostu się kończy. Obecnie fragmenty UEF nie są zagnieżdżane.
Cały plik UEF, w tym nagłówek, można opcjonalnie skompresować w formacie gzip . Sprawdzając początek pliku pod kątem nagłówka gzip lub UEF, można odpowiednio wywołać bibliotekę dekompresyjną.
Treść
Unified Emulator Format modeluje oprogramowanie na kasecie jako ciągłą sekwencję segmentów, którymi mogą być tony nośne , modulowane asynchroniczne sygnały zwykłych bloków danych, cykle bezpieczeństwa (modulowane sygnały synchroniczne, o których mówi się, że są „cechą identyfikacyjną”) lub luki gdzie nie ma rozpoznanego sygnału. Fragmenty taśmy UEF są łączone w kolejności, w jakiej się pojawiają, aby stworzyć reprezentację całego nagrania. Podczas generowania z rzeczywistej taśmy źródłowej każdy przebieg na taśmie odpowiada bezpośrednio fragmentowi taśmy, tak że źródło można dokładnie zrekonstruować (z zastąpieniem dowolnych niekodowanych sygnałów przerwami o równej długości).
Standardowe strumienie Acorn (identyfikator fragmentu: 0x0100) są kodowane w taki sposób, że ich bajty pojawiają się ponownie w treści fragmentu UEF. Od wersji 0.10 bezpośrednie wsparcie jest rozszerzone na wszystkie formaty asynchroniczne (0x0104), w tym format 8,N,2
BASICODE. W przeciwnym razie istnieje ogólna porcja (0x0102), aby pomieścić dowolną dowolną sekwencję bitów. Fragmenty fali bezpieczeństwa (0x0114) również przenoszą strumienie bitów, zakodowane w innej formie, aby umożliwić reprezentację jednego bitu o połowie długości obserwowanego w nagraniach komercyjnych.
Istnieje kilka zmiennych modalnych wpływających na interpretację tych fragmentów: szybkość transmisji, 1200 bodów dla sygnałów Acorn lub 300 bodów dla KCS; dokładna częstotliwość nośna, która określa czas odtwarzania zrekonstruowanej taśmy; i faza sygnału. Te dwa ostatnie mogą się zmieniać w ramach publikowanego nagrania, a ich wartości bezwzględne zależą od magnetofonu, wzmacniacza i karty dźwiękowej użytej do digitalizacji sygnału.
Plik UEF może zawierać znaczniki do oddzielania taśm dystrybucji wielu taśm oraz boków każdej taśmy; można również zaznaczyć interesujące pozycje w obrębie każdej strony.
Dyski są przechowywane jako surowe zrzuty sektorów każdej powierzchni, wraz z ich geometrią i bajtem identyfikującym system plików . Poprzednie wersje specyfikacji zawierały przepisy dotyczące kodowania dysków na poziomie strumienia bajtów lub na domeny magnetycznej . Ponieważ zrzuty sektorów SSD i DSD dobrze obsługują standardowe dyski BBC, a dojrzały format FDI obsługujący oprogramowanie chronione przed kopiowaniem, funkcja obrazu dysku UEF jest rzadko używana.
Boczne ROMy są również przechowywane jako surowe dane, a także wskazanie ich celu i zalecenia dotyczące gniazda ROM. Ponownie baza użytkowników preferuje puste zrzuty ROM do archiwizacji.
migawek stanu zawierają znormalizowane fragmenty do przechowywania głównych części stanu Acorn Electron lub BBC Micro: pamięć główna, cień i magistrala rozszerzeń, procesor i kontroler stacji dyskietek WD1770; także Electron ULA i Slogger Master RAM Board, wspólny dodatek Electron. Fragment pamięci łaty przepisuje blok pamięci pod dowolnym adresem, umożliwiając formatowi UEF pakowanie zaczepek . Aby przechowywać elementy stanu, które nie mieszczą się w standardowych porcjach, emulatory mogą definiować własne porcje. Prywatny obszar użytku identyfikatorów kawałków jest zarezerwowana do tego lub innego celu, chociaż niektóre emulatory zapisują stan pod nieprawidłowymi identyfikatorami kawałków w przestrzeni publicznej.
Multipleksowane dane to rozszerzenie emulatorów, używane przez ElectrEm, ale bez opublikowanej specyfikacji:
Multipleksowanie bitów dostarcza emulatorowi dodatkowych informacji, dzięki czemu stare programy mogą być uruchamiane w celu uzyskania lepszej jakości danych wyjściowych. Ta funkcja jest tak naprawdę przeznaczona tylko do emulacji plików UEF, a ignorowanie multipleksowania bitów nie będzie miało wpływu na dokładność narzędzia względem oryginalnego sprzętu.
— Thomas Harte, specyfikacja formatu plików UEF 0.10 (wersja robocza dokumentu 28)
Jedną z istotnych aplikacji, o których wspomniał Harte, jest nakładanie „nowej grafiki na stare gry”, a pojedynczy przykład, ulepszony w 256 kolorach Daredevil Dennis , jest dostępny na StairwayToHell.com do uruchomienia w ElectrEm.
Zmultipleksowane fragmenty danych mają następować po zwykłych fragmentach danych w dowolnej z powyższych klas, uzupełniając dane. Ich zawartość nie ma być widoczna dla komputera Acorn, ani rzeczywistego, ani emulowanego, ale poza tym ich znaczenie nie zostało określone.
Fragmenty zawierające informacje o zawartości obejmują fragment pochodzenia pliku , który identyfikuje aplikację, która wygenerowała plik UEF. Fragmenty skanu inlay , pomyślane jako podgląd pliku, zawierają surową bitmapę okładki, chociaż wszystko poza miniaturą może zająć więcej danych niż typowa gra. Autor UEF może również podać tekst instrukcji lub adres URL, aby uzyskać więcej informacji, krótki tytuł do wyświetlenia, minimalną specyfikację maszyny i mapowanie klawiatury za załączone oprogramowanie; a tam, gdzie gra nie zajmuje całego ekranu, można podać współrzędne widocznego obszaru . Mniejszość plików UEF dostępnych online zawiera wszystko w tej klasie oprócz fragmentu początkowego.
Plik UEF może zawierać jednocześnie wiele klas danych, zgodnie z zamierzeniami firmy Harte; nie można wiedzieć, które klasy zawiera bez skanowania całego pliku. W polu wyboru pliku ElectrEm wyświetla ikonę odpowiadającą pierwszej znalezionej porcji klasy danych.
Aplikacje
MakeUEF
MakeUEF to aplikacja Windows napisana przez Thomasa Harte'a i rozszerzona przez Frasera Rossa w celu konwersji próbek audio na pliki UEF. Oferowane są dwa stopnie. Wersja „amatorska” odczytuje WAV lub sygnał na żywo odtwarzany na karcie dźwiękowej i dokonuje dokładnej transkrypcji tylko standardowych bloków danych. Wersja „professional” akceptuje tylko pliki CSW, które reprezentują fale wstępnie przetworzone w prostokątne ciągi impulsów , ale koduje wszystkie informacje audio obsługiwane przez specyfikację UEF.
MakeUEF twierdzi, że był jedynym twórcą wszystkich plików UEF dostępnych w sieci przed listopadem 2004 r., miesiącem wydania wersji 1.0. Chociaż format pliku był bardziej wydajny, obsługując „długości przerw” najpóźniej od lutego 2001 r., MakeUEF zachowywał tylko „dane programu” przed wersją 1.0. Od listopada 2004 roku poprawiła się wierność MakeUEF, a specyfikacja plików została udoskonalona, a rozszerzenie .hq.uef
(„wysoka jakość”) została przyjęta, aby to odzwierciedlić. Archiwum AcornPreservation.org zawiera tylko pliki źródłowe HQ.UEF oraz pliki źródłowe CSW. Jej siostrzana witryna StairwayToHell.com akceptuje „amatorskie” tłumaczenia UEF i pliki wyprodukowane przez MakeUEF w wersji wcześniejszej niż 1.0. Od 2008 r. Ta ostatnia witryna zawiera 1494 transkrypcje tytułów kaset BBC Micro i co najmniej 800 tytułów Electron.
Inni
- Kilka emulatorów maszyn Acorn natywnie obsługuje UEF, aby odczytywać i zapisywać dane na taśmie (z oryginalną prędkością lub szybciej) oraz przechowywać migawki stanu. Przykłady obejmują ElectrEm, BeebEm i B-Em.
- FreeUEF autorstwa Thomasa Harte'a i wtyczka UEFReader Java Sound konwertują plik UEF na dźwięk nadający się do nagrywania na taśmie lub odtwarzania na fizycznym komputerze.
- UberCassette to wieloplatformowe, wieloformatowe kodery emitujące UEF z próbek kaset Acorn.
- UEFwalk Perl sprawdza poprawność i wyodrębnia dane z plików UEF.
- Łatka XVUEF rozszerza edytor obrazów Xv o obsługę mało używanych fragmentów skanowania wkładki UEF.
Użyj na prawdziwych BBC Micros
Rozszerzenia sprzętowe GoMMC i GoSDC, produkowane przez Johna Kortinka od 2004 roku, zapewniają możliwość wirtualnego odtwarzania kaset. Dołączone narzędzia komputerowe importują dane kasety z plików UEF i przechowują wyodrębniony strumień kasety na karcie pamięci.
W lutym 2012 roku Martin Barr wydał wersję 5.0 UPURS, opartego na pamięci ROM pakietu narzędzi wspomagającego przesyłanie danych do prawdziwych mikrokomputerów BBC. W ramach tego wydania narzędzie UPCFS ujrzało swoje pierwsze wydanie, które umożliwiło deklarowany 86% stopień zgodności z istniejącymi zdekompresowanymi plikami UEF, umożliwiając ich przeniesienie do prawdziwego BBC Micro za pomocą niestandardowego kabla portu użytkownika, który zapewnia połączenie obsługujące RS-232 do komputera.