{"id":105602,"date":"2021-08-24T07:00:00","date_gmt":"2021-08-24T14:00:00","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/oldnewthing\/?p=105602"},"modified":"2021-08-24T06:03:05","modified_gmt":"2021-08-24T13:03:05","slug":"20210824-00","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20210824-00\/?p=105602","title":{"rendered":"How to sneak the Windows 95 credits screen into the build without anybody noticing"},"content":{"rendered":"<p>The hidden Windows 95 credits screen was snuck into the build under cover of darkness.<\/p>\n<p>Okay, maybe not, but it was snuck in.<\/p>\n<p>The code for the Windows 95 credits was snuck into <code>shell32.dll<\/code>, in part by writing it in an obscure language nobody understood.<\/p>\n<p>It was written in C++.<\/p>\n<p>At the time, C was the well-tested, well-supported language, having been <i>de facto<\/i> standardized since 1978 (K&amp;R) and formally standardized since 1989. The C++ language wouldn&#8217;t become standardized until 1998. C++ was the language to use if you wanted to live dangerously on the bleeding edge.<\/p>\n<p>The code for the credits is the only code in the Windows 95 shell that was written in C++. Aside from a small amount of assembly language, everything else is in C.\u00b9<\/p>\n<p><b>Related reading<\/b>: <a title=\"An insight into the Windows 95 startup sound\" href=\"https:\/\/devblogs.microsoft.com\/oldnewthing\/20030908-00\/?p=42623\"> An insight into the Windows 95 startup sound<\/a>, and the origin of the Windows 95 credits music.<\/p>\n<p><b>Bonus video<\/b>: Composer Brian Orr answers questions about the Windows 95 credits music.<\/p>\n<p><iframe src=\"https:\/\/www.youtube.com\/embed\/gPgZ-S-cDQ0\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p><b>Bonus chatter<\/b>: Even though Brian in the video says that management mustn&#8217;t find out, at least one manager did know about it, because I remember sitting in their office to go over the list of names to include.<\/p>\n<p>\u00b9 The Windows 95 shell was COM-based, but it used COM in C. So don&#8217;t say it can&#8217;t be done.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Write it in an obscure language.<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[2],"class_list":["post-105602","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-history"],"acf":[],"blog_post_summary":"<p>Write it in an obscure language.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/105602","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=105602"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/105602\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=105602"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=105602"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=105602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}