{"article":{"slug":"oldest-gui-application-that-still-runs-on-windows-11","title":"Oldest GUI application that still runs on Windows 11","subtitle":null,"summary":"enlyth investigates which is the oldest unmodified GUI application that still runs natively on 64-bit Windows 11, given that 16-bit programs are no longer supported, and shows Windows 1.01's REVERSI.EXE running via otvdm as a bonus.","content_type":"blog_post","language":"en","canonical_url":"https://blog.enlyth.com/posts/oldest-windows-gui-app-win-11/","author":{"name":"enlyth","url":null,"person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"enlyth","url":"https://blog.enlyth.com/","listing_slug":null,"listing":null},"topics":[{"name":"Windows","slug":"windows","url":"https://listedarticles.com/topics/windows"},{"name":"Retro Computing","slug":"retro-computing","url":"https://listedarticles.com/topics/retro-computing"},{"name":"Software History","slug":"software-history","url":"https://listedarticles.com/topics/software-history"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":525,"reading_minutes":2,"published_at":"2026-10-26T00:00:00.000Z","added_at":"2026-10-26T20:16:40.504Z","updated_at":"2026-10-26T20:16:40.504Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/oldest-gui-application-that-still-runs-on-windows-11","markdown_url":"https://listedarticles.com/articles/oldest-gui-application-that-still-runs-on-windows-11.md","example":false,"citation":"enlyth, enlyth. \"Oldest GUI application that still runs on Windows 11.\" 26 Oct 2026. https://blog.enlyth.com/posts/oldest-windows-gui-app-win-11/ (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://blog.enlyth.com/posts/oldest-windows-gui-app-win-11/"},"body_markdown":"26 October 2026·2 min read\n\n- [#windows](https://blog.enlyth.com/tags/windows/)\n- [#gui](https://blog.enlyth.com/tags/gui/)\n\n# Early investigation\n\nFor a while I’ve been wondering about a silly question, which is, what’s the oldest application with a GUI that will still run on Windows 11 without modifications or emulation.\n\nGiven Windows’ excellent backwards compatibility, I expected the answer to be something impressively old.\n\nSadly, Windows 11 can’t run 16-bit Windows programs by itself, because 64-bit Windows has no [NTVDM](https://en.wikipedia.org/wiki/Virtual_DOS_machine#Windows_NTVDM), so we’re going to have to find something from the early NT era.\n\nI remember asking this question a while ago on an anonymous forum, where someone pointed me to [Win32s](https://en.wikipedia.org/wiki/Win32s), and suggested to find an early release version of it with `FREECELL.exe`.\n\nSo I did exactly that, and lo and behold, `FREECELL.EXE` with a date modified of `22-Feb-93` running and fully playable, without any changes on the latest version of Windows 11:\n\n![FREECELL.EXE from 1993](https://blog.enlyth.com/_astro/image.Bg57xYSH_1uh08L.webp)\n\nAt the time of this post, that’s a 33 years and 8 months old application, which is impressively almost as old as me.\n\nSo I kinda thought “cool”, considered this a solved mystery and forgot about it shortly afterwards. But for some reason, this question popped into my mind again lately and this time I decided to dig deeper to see if I can find something older.\n\n# Further efforts\n\nDigging through old Windows versions on the Internet Archive, I found some early NT 3.1 pre-release versions that seemed promising, but the main issue seemed to be either incompatibility with today’s executable format or API changes that came later in development.\n\nThe earliest 1991 versions used a draft PE format not compatible with modern Windows, and builds up to mid-1992 assumed the [`cdecl`](https://en.wikipedia.org/wiki/X86_calling_conventions#cdecl) calling convention instead of `stdcall` for Windows API calls, so arguments would get removed twice, as such:\n\n```\npush hwnd          ; 4 bytes of args\ncall [ShowWindow]  ; Win11 ShowWindow is stdcall, ends with \"ret 4\" and removes them\nadd  esp, 4        ; the 1992 caller removes them again\n```\n\nWhich would understandably cause the program to crash.\n\nThere was one application that caught my eye though, from Build 347, and that was `CDPLAYER.EXE`, linked on `16-Nov-1992`. By then the calling convention was fixed, but the other programs in that build crash in their bundled C runtime. `CDPLAYER.EXE` avoids that by using the system’s `crtdll.dll`, and Windows 11 still ships a `crtdll.dll` in `SysWOW64`.\n\nIf you start the program, you get something like this:\n\n![CDPLAYER.EXE no CD-ROM drive found](https://blog.enlyth.com/_astro/image-3.ccUj1wn8_1qfbsq.webp)\n\nThat is because, duh, my computer doesn’t have a CD-ROM drive. But you can use a small DLL (`cdemu.dll`) to emulate one with some fake audio data and actually get it to play audio:\n\n![CDPLAYER.EXE with emulated CD-ROM](https://blog.enlyth.com/_astro/image-2.CW-t_DpM_vg2wv.webp)\n\nPretty cool for a program that’s almost 34 years old!\n\n# What if we cheat?\n\nSo earlier I mentioned that 16-bit programs are out of the picture because they are no longer supported.\n\nBut if you want, you can use something like [otvdm](https://github.com/otya128/winevdm) to run older Windows applications.\n\nBehold, a fully playable version of `REVERSI.EXE` dated `15-Nov-1985` running on Windows 11, taken from Windows 1.01:\n\n![alt text](https://blog.enlyth.com/_astro/image-4.BUOY9wBP_ZSDHhX.webp)\n\nAnd although using `otvdm` does feel like cheating, I thought it was cool enough to include in this post.\n","body_html":"<p>26 October 2026·2 min read</p>\n<ul><li><a href=\"https://blog.enlyth.com/tags/windows/\" rel=\"nofollow ugc noopener\">#windows</a></li><li><a href=\"https://blog.enlyth.com/tags/gui/\" rel=\"nofollow ugc noopener\">#gui</a></li></ul>\n<h1 id=\"early-investigation\">Early investigation</h1>\n<p>For a while I’ve been wondering about a silly question, which is, what’s the oldest application with a GUI that will still run on Windows 11 without modifications or emulation.</p>\n<p>Given Windows’ excellent backwards compatibility, I expected the answer to be something impressively old.</p>\n<p>Sadly, Windows 11 can’t run 16-bit Windows programs by itself, because 64-bit Windows has no <a href=\"https://en.wikipedia.org/wiki/Virtual_DOS_machine#Windows_NTVDM\" rel=\"nofollow ugc noopener\">NTVDM</a>, so we’re going to have to find something from the early NT era.</p>\n<p>I remember asking this question a while ago on an anonymous forum, where someone pointed me to <a href=\"https://en.wikipedia.org/wiki/Win32s\" rel=\"nofollow ugc noopener\">Win32s</a>, and suggested to find an early release version of it with <code>FREECELL.exe</code>.</p>\n<p>So I did exactly that, and lo and behold, <code>FREECELL.EXE</code> with a date modified of <code>22-Feb-93</code> running and fully playable, without any changes on the latest version of Windows 11:</p>\n<figure><img src=\"https://blog.enlyth.com/_astro/image.Bg57xYSH_1uh08L.webp\" alt=\"FREECELL.EXE from 1993\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<p>At the time of this post, that’s a 33 years and 8 months old application, which is impressively almost as old as me.</p>\n<p>So I kinda thought “cool”, considered this a solved mystery and forgot about it shortly afterwards. But for some reason, this question popped into my mind again lately and this time I decided to dig deeper to see if I can find something older.</p>\n<h1 id=\"further-efforts\">Further efforts</h1>\n<p>Digging through old Windows versions on the Internet Archive, I found some early NT 3.1 pre-release versions that seemed promising, but the main issue seemed to be either incompatibility with today’s executable format or API changes that came later in development.</p>\n<p>The earliest 1991 versions used a draft PE format not compatible with modern Windows, and builds up to mid-1992 assumed the <a href=\"https://en.wikipedia.org/wiki/X86_calling_conventions#cdecl\" rel=\"nofollow ugc noopener\"><code>cdecl</code></a> calling convention instead of <code>stdcall</code> for Windows API calls, so arguments would get removed twice, as such:</p>\n<pre><code>push hwnd          ; 4 bytes of args\ncall [ShowWindow]  ; Win11 ShowWindow is stdcall, ends with &quot;ret 4&quot; and removes them\nadd  esp, 4        ; the 1992 caller removes them again</code></pre>\n<p>Which would understandably cause the program to crash.</p>\n<p>There was one application that caught my eye though, from Build 347, and that was <code>CDPLAYER.EXE</code>, linked on <code>16-Nov-1992</code>. By then the calling convention was fixed, but the other programs in that build crash in their bundled C runtime. <code>CDPLAYER.EXE</code> avoids that by using the system’s <code>crtdll.dll</code>, and Windows 11 still ships a <code>crtdll.dll</code> in <code>SysWOW64</code>.</p>\n<p>If you start the program, you get something like this:</p>\n<figure><img src=\"https://blog.enlyth.com/_astro/image-3.ccUj1wn8_1qfbsq.webp\" alt=\"CDPLAYER.EXE no CD-ROM drive found\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<p>That is because, duh, my computer doesn’t have a CD-ROM drive. But you can use a small DLL (<code>cdemu.dll</code>) to emulate one with some fake audio data and actually get it to play audio:</p>\n<figure><img src=\"https://blog.enlyth.com/_astro/image-2.CW-t_DpM_vg2wv.webp\" alt=\"CDPLAYER.EXE with emulated CD-ROM\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<p>Pretty cool for a program that’s almost 34 years old!</p>\n<h1 id=\"what-if-we-cheat\">What if we cheat?</h1>\n<p>So earlier I mentioned that 16-bit programs are out of the picture because they are no longer supported.</p>\n<p>But if you want, you can use something like <a href=\"https://github.com/otya128/winevdm\" rel=\"nofollow ugc noopener\">otvdm</a> to run older Windows applications.</p>\n<p>Behold, a fully playable version of <code>REVERSI.EXE</code> dated <code>15-Nov-1985</code> running on Windows 11, taken from Windows 1.01:</p>\n<figure><img src=\"https://blog.enlyth.com/_astro/image-4.BUOY9wBP_ZSDHhX.webp\" alt=\"alt text\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<p>And although using <code>otvdm</code> does feel like cheating, I thought it was cool enough to include in this post.</p>","headings":[{"level":1,"text":"Early investigation","id":"early-investigation"},{"level":1,"text":"Further efforts","id":"further-efforts"},{"level":1,"text":"What if we cheat?","id":"what-if-we-cheat"}]}}