Skip to content

Latest commit

 

History

History
51 lines (33 loc) · 3.34 KB

README.md

File metadata and controls

51 lines (33 loc) · 3.34 KB

ChicagoCRT

Original GitHub issues GitHub pull requests GitHub GitHub commit activity (branch) GitHub Repo stars Mastodon Follow

ChicagoCRT is a fork of MiniCRT designed to run on systems Windows 95 and higher, on x86.

Warning

This library is for Windows 95, and as such, security features like Spectre mitigation and RTC are disabled.
Proceed with extreme caution!

🤔 Inspiration

MattKC has recently published a video on porting .NET Framework to Windows 95, which made me think about doing the same, but with programs compiled on modern Windows SDKs.

I knew it was possible, since MSVC allows you to disable the standard library and enhanced instructions, but I had to get around the artificial limitation imposed by the system version in the PE header.

You can read a blog post I've made about this project here!

🧪 Sample Project

You can find a sample project on how to use this here!

🖥️ System Requirements

ChicagoCRT does not depend on APIs newer than Windows NT 3.1 or Windows 95. A Unicode binary with ChicagoCRT can run on NT 3.1; an ANSI binary can run on Windows 95.

Important

Newer compilers will mark executables as requiring Windows Vista or higher.
This is an artificial limitation, and you can find a script to get around this here.

🧰 Build instructions

Requires Visual Studio 2022, with the C++ workload installed and the Windows SDK.
Building can be done as with any standard C++ project, and the output will be found on the Build folder.

Note

Due to the nature of computers running Windows 95, enhanced instructions (e.g. SSE, AVX) have been disabled entirely.
Programs that link to ChicagoCRT should ideally also disable enhanced instructions.

⚖️ License

This software is licensed under the terms of the MIT license.
You can read the terms here.