Tłumaczenie oryginalnej strony w języku angielskim dla OmsiLaunch 0.1.0-beta3. Wiążąca jest strona angielska: w razie rozbieżności obowiązują strona angielska i kod.
Ta strona wymienia, na podstawie kodu, wszystko w OmsiLaunch 0.1.0-beta3, co jest UNAVAILABLE, PARTIAL lub stanowi zaakceptowane ryzyko, tak aby użytkownicy i integratorzy nie opierali się na zachowaniu, którego produkt nie zapewnia. Każdy wiersz podaje ograniczenie, jego stabilność, przyczynę oraz miejsce, w którym zostało szczegółowo udokumentowane. Dokumentacja angielska jest normatywna; zlokalizowane kopie w docs/localized/ nie są utrzymywane na tym samym poziomie i mogą być nieaktualne (zob. ostatnią sekcję).
Obsługiwany jest wyłącznie Omsi23004_692EBFBF (692EBFBF...6243); skrót Steam LAA 7DAB063D...D759 znajduje się na liście dozwolonych; jego odcisk i plan zweryfikowano na kontrolowanej kopii, ale rozgrywka wymaga autentycznej instalacji Steam (obraz jest plikiem wykonywalnym Steam chronionym DRM)
LAST_MAP_STATE (/last, WorldMode.LastMapState) nie jest zaimplementowany; nigdy nie jest podstawiany zastępczy plik .osn wybrany na podstawie znacznika czasu
Jawna lub systemowa data, godzina i rok (/date, /time, /year, profil new.date/new.time/new.year, DateSpec/TimeSpec/YearSpec) są przenoszone w specyfikacji, ale sprawiają, że plan jest niemożliwy do uruchomienia; wtyczka odrzuca tryby inne niż Unset
Ustawienie wstępne pogody, ICAO i bieżąca rzeczywista pogoda przy starcie (/weather*, new.weather)
UNAVAILABLE (STATICALLY_PARTIAL, BI-003)
jak wyżej
Model pojazdu gracza, malowanie, HOF, numer taborowy i numer rejestracyjny przy starcie (rodzina /vehicle, PlayerVehicleSpec) są rozwiązywane względem katalogu zawartości, ale nie są stosowane; ich żądanie sprawia, że plan jest niemożliwy do uruchomienia; deterministyczne przypisanie PlayerVehicle bez interakcji (headless) jest przyszłym rozszerzeniem
Punkt wejścia według tożsamości (/entrypoint:<identity>) nie jest korelowany z listą prezentowaną przez OMSI; należy używać /entrypoint-index
PARTIAL (BI-001)
możliwość planu world.entrypoint-identity = RUNTIME_PARTIAL
Nakładki (overlay) dokumentów klawiatury i kontrolerów (InputSpec, Environment.Keyboard, Environment.Controllers) są parsowane, ale nigdy nie są stosowane przez sesję
UNAVAILABLE (BI-005)
możliwości input.*
LaunchBehaviorSpec.RestoreConfiguration i InstallationSpec.ExpectedExecutableSha256 są zadeklarowane, ale nigdy nie są odczytywane
Zatrzymanie sesji jest wymuszonym zakończeniem: session.stop, „End session” w obszarze powiadomień, Ctrl+C i CloseAsync prowadzą do TerminateProcess. Procedura zamykania OMSI nie jest wykonywana, OMSI przy wyjściu nie zapisuje ponownie options.cfg ani swoich logów, a każdy niezapisany stan OMSI zostaje utracony. Jest to celowe: zapobiega nadpisaniu przywróconych plików przez OMSI.
Przy zamknięciu konsoli lub wylogowaniu właściciel ma budżet 4 s na zatrzymanie i przywrócenie; wszystko, co pozostanie, jest odzyskiwane z dziennika przy następnym uruchomieniu
zamknięcie konsoli zweryfikowane w runtime; wylogowania nie sprawdzano
Dzierżawa instalacji jest semaforem Local\: jeden właściciel na instalację w obrębie sesji logowania; nie jest egzekwowana między użytkownikami; nie jest zwalniana, dopóki inny proces trzyma uchwyt; dowolny proces tego samego użytkownika może zająć tę nazwę
Odzyskiwanie jest odrzucane (OL_E_INSTALLATION_BUSY), dopóki działa proces OMSI zapisany w dzienniku lub – w przypadku dziennika bez PID – jakikolwiek Omsi.exe z tego katalogu głównego
zgodnie z projektem
jak wyżej
Pierwotnie nieobecna ścieżka nakładki, której zawartość zmieniła się podczas sesji, blokuje przywracanie (OL_E_RECOVERY_ABSENT_OWNERSHIP_MISMATCH) do czasu jej sprawdzenia
zgodnie z projektem
jak wyżej
Dzienniki sprzed wprowadzenia odcisków własności może zamknąć tylko sesja z identycznymi zaplanowanymi bajtami (OL_E_RECOVERY_ABSENT_OWNERSHIP_UNVERIFIED)
PARTIAL
jak wyżej
Przywracane są tylko ścieżki należące do sesji. Własne zapisy OMSI podczas sesji (options.cfg[last_map], gdy żadne ustawienie nie nakłada zmian na options.cfg, Texture\standard.ipr, pamięci podręczne, laststn.osn, profil kierowcy, logi) pozostają, tak jak po bezpośrednim uruchomieniu OMSI
Brak przenoszenia pojazdów, brak ponownego wiązania przestrzennego między kafelkami, brak bezpiecznego względem ODE uprawnienia do transformacji; pola pozycji są tylko do odczytu
UNAVAILABLE (BI-008)
road-vehicle.read
camera.lock / camera.unlock wymagają PlayerVehicle; uruchomienie NEW_MAP bez interakcji go nie zapewnia (zapewnia go zapisana sytuacja)
zgodnie z projektem (BI-007)
RV-004
Mutacje runtime (time.set, camera.set, camera.lock, vehicle.variable.set, spawn, place-random, tekstury D3D) nie są zapisywane w dzienniku ani przywracane
Martwy punkt odcisku uchwytu: obiekt tej samej klasy i definicji utworzony ponownie pod tym samym adresem między dwoma odczytami listy nie jest wykrywany jako nieaktualny; czas życia przy naturalnym usunięciu (RV-002) nie ma bezpiecznego źródła w runtime i pozostaje tylko offline
Telemetria jest slotem ostatniej wartości: serie szybsze niż próbkowanie hosta co 100 ms mogą gubić zdarzenia pośrednie (numery sekwencji odróżniają identyczne kolejne zdarzenia; rozerwane próbki są pomijane)
Reset urządzenia D3D zaobserwowano w runtime (resetting, restored, unieważnienie generacji); odrębne przejście lost nie wystąpiło, ponieważ urządzenie OMSI przeszło bezpośrednio do DEVICENOTRESET
Wyniki list ograniczonych (operacje timetable.*.list, vehicle.variables.list, vehicle.string-variables.list) zwracają co najwyżej tyle wierszy, ile mieści się w slocie runtime 64 KiB; pozostałe są pomijane z truncated=true i mniejszą wartością returned_count (audyt dokumentacji BUG-05). W tym wydaniu nie ma stronicowania
timetable.logs.read, road-vehicles.list, humans.list, vehicle.constants.list i vehicle.curves.list nie są ograniczone: wynik większy niż slot kończy się błędem OL_E_RUNTIME_RESPONSE_TOO_LARGE (na testowanych mapach nie zaobserwowano tego dla żadnej z nich)
Samodzielnie raportowane ciągi dowodów (PublicCapabilityRegistryRuntimeValidation, GetCapabilitiesAsyncEvidenceState) nie zostały zaktualizowane po rundzie domknięcia runtime: camera.lock nadal podaje STATICALLY_VALIDATED, a runtime.d3d.lifecycle.reset – IMPLEMENTED_NOT_RUNTIME_VALIDATED. Rozstrzygająca jest strona stan weryfikacji w runtime
Niektóre zaawansowane pola grafu map/kafelków/ścieżek/obiektów nie są udostępniane; czytniki runtime to typowane migawki zależne od profilu, nigdy dowolny dostęp do pamięci
Odczyty pamięci w procesie działają na zasadzie „sprawdź, potem użyj” wobec działającego OMSI; równoczesna zmiana w OMSI między sprawdzeniem a odczytem może dać niespójną migawkę (OL_E_RUNTIME_OPERATION_FAILED)
Model zaufania tego samego użytkownika: potok nazwany (CurrentUserOnly), mapowania pamięci handoff/telemetrii/runtime oraz semafor dzierżawy są dostępne dla każdego procesu tego samego użytkownika Windows. Taki proces może odczytać stan, zatrzymać sesję lub wykonywać operacje runtime, gdy tylko odczyta session_id.
Punkt końcowy sterowania istnieje tylko wtedy, gdy właściciel jest w stanie Running; klient otrzymuje OL_E_NO_ACTIVE_SESSION (kod wyjścia 4) podczas uruchamiania i po zakończeniu sesji
Jeśli inny proces jest już właścicielem nazwy potoku, właściciel sesji działa dalej bez punktu końcowego (ListenFault), a drugie uruchomienie może błędnie zgłosić OL_E_SESSION_ALREADY_ACTIVE
Retencja obejmuje 50 najnowszych sesji; starsza diagnostyka z prefiksem sesji jest usuwana przy starcie nowej sesji
zgodnie z projektem
jak wyżej
Dane wyjściowe JSON i diagnostyka zawierają ścieżki instalacji (RootPath, katalogi zasobów, ścieżki .itx)
zgodnie z projektem (dane lokalne)
Okno dialogowe błędu sesji w OmsiLaunchW.exe pokazuje jako komunikat ładunek błędu wtyczki (na przykład {"name":"world.failed",...}) zamiast zdania; wiersz Code: jest poprawny
Żądanie D3D odrzucone przez mostek natywny przed jakimkolwiek wywołaniem Direct3D poprawnie raportuje native_status, ale jego tekst detail podaje HRESULT 0x00000000
Okno stanu w obszarze powiadomień jest migawką zaplanowanej sesji wykonaną w chwili jego otwarcia; nie odświeża się i nie pokazuje bieżących wartości OMSI
Angielskie strony w docs/ są dokumentacją normatywną tego wydania. docs/localized/<locale>/ zawiera tłumaczenia tych samych stron 0.1.0-beta3 (zob. LOCALIZATION-MANIFEST.md); tam, gdzie tłumaczenie różni się od tekstu angielskiego, rozstrzygające są tekst angielski i kod. Wymienione tam strony historyczne i starsze (legacy) są dostępne tylko po angielsku.