https://github.com/s-macke/FSHistory Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code + Explore + All features + Documentation + GitHub Skills + Blog * Solutions + By Plan + Enterprise + Teams + Compare all + By Solution + CI/CD & Automation + DevOps + DevSecOps + Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles + Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} s-macke / FSHistory Public * Notifications * Fork 27 * Star 425 Play and Enjoy the History of Microsoft Flight Simulator License MIT license 425 stars 27 forks Star Notifications * Code * Issues 2 * Pull requests 1 * Discussions * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Discussions * Actions * Projects * Security * Insights s-macke/FSHistory This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 1 branch 0 tags Code * Clone HTTPS GitHub CLI [https://github.com/s] Use Git or checkout with SVN using the web URL. [gh repo clone s-mack] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @s-macke s-macke Update README.md ... c46daf0 Nov 15, 2022 Update README.md c46daf0 Git stats * 41 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time data Add file system images of Flight Simulator 1 to 4 Jul 23, 2020 images Mention of the Microsoft Flight Simulator Easter Egg. Nov 14, 2022 scripts Small optimizations after compiling under Linux Sep 19, 2022 src Small optimizations after compiling under Linux Sep 19, 2022 .gitignore Add necessary wasm file Jul 23, 2020 LICENSE Initial commit Jul 23, 2020 Makefile Small optimizations after compiling under Linux Sep 19, 2022 README.md Update README.md Nov 15, 2022 bzip2.js Add files necessary to start wasm Jul 23, 2020 dos.js Small updates. Especially the start of heap is now determined by the ... Sep 16, 2022 fshistory.wasm Update wasm file Sep 16, 2022 index.html Remove alert and change unicode arrows to be compatible with iOS and ... Jul 27, 2020 View code FSHistory Click to play Technical aspects How To Build License Easter Egg in Microsoft Flight Simulator README.md FSHistory Play and Enjoy the History of Microsoft Flight Simulator Click to play web demonstration Do you know how many Flight Simulators Microsoft published? It has been more than ten with Microsoft Flight Simulator (2020) being the latest version that has been released. See how it all began. Play the first four flight simulator games from 1982 to 1989 originally developed by Sublogic and Bruce Artwick. It has full mouse and keyboard control and can be even enjoyed on your mobile. However a full IBM style keyboard is recommended. Technical aspects Always when I start a new project I wonder what programming language I should use. Most of the time the requirements are the same. It must be fast, strongly typed and the result must presentable on a website. Especially I would like to keep it as simple as possible. C is usually my language of choice when the logic doesn't get too complicated. And this is exactly the case for such emulators. Low level hardware emulation on a low level language. C is also the natural choice for WebAssembly as the language features fit perfect. It is like you write an ordinary C-library. clang of the LLVM project offers the ideal compiler infrastructure to create customized WebAssembly files without any additional runtime code. As such my code implements parts of the libc such as printf, malloc and memcpy. Just enough to run the emulator. The result is a project that compiles naturally as a native executable and runs in the browser with just is a few hundred lines of glue code. In short, this is the technical feature list * Developed in C. * Emulates an 8086 CPU and features from a 286 and a 386 CPU. * Emulates keyboard, mouse, graphics, interrupt controller, timer controller. * Implements DOS and BIOS functions similar to DOSBox. * Compiles to an ordinary executable by using the Simple DirectMedia Layer (SDL). * Compiles to WebAssembly via the LLVM compiler by using my own trivial libc implementation. Zero dependencies. The size of the binary is just 93 kB uncompressed. How To Build To build the native executable make sure gcc and SDL2 is installed and run make To compile the webassembly file install clang and run ./scripts/compile_wasm.sh License The software part of the repository is under the MIT license. Please read the license file for more information. The game data in the data directory is not part of this license Easter Egg in Microsoft Flight Simulator Code sometimes has the property of duplicating itself and then popup in an unusual place. So happened to me when I first heard about an Easter egg in the 40th Anniversary Edition of the Flight Simulator. On the runway in a Diamond DA62, you press the ELT switch. The screen in front of you changes and offers you to play the first four DOS Flight Simulator versions. MFS Easter Egg Could it be, that this is a copy of my project? I downloaded the flight simulator, jumped into the Diamond and pressed the button. And yes, it really is a copy. I know the quirks of my emulation. Many thanks to the developer of Asobo Studio who included this code. About Play and Enjoy the History of Microsoft Flight Simulator Topics webassembly flight-simulator retrogaming Resources Readme License MIT license Stars 425 stars Watchers 14 watching Forks 27 forks Releases No releases published Packages 0 No packages published Contributors 3 * @s-macke s-macke Sebastian Macke * @gbraad gbraad Gerard Braad * @jasperpilgrim jasperpilgrim Jasper Pilgrim Languages * C 88.6% * JavaScript 6.6% * HTML 3.6% * Other 1.2% Footer (c) 2022 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.