<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Win64 &#8211; Virtually Fun</title>
	<atom:link href="https://virtuallyfun.com/category/win64/feed/" rel="self" type="application/rss+xml" />
	<link>https://virtuallyfun.com</link>
	<description>Fun with Virtualization</description>
	<lastBuildDate>Sat, 11 Oct 2025 06:41:16 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>Running Graylog on Windows</title>
		<link>https://virtuallyfun.com/2023/12/02/running-graylog-on-windows/</link>
					<comments>https://virtuallyfun.com/2023/12/02/running-graylog-on-windows/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sat, 02 Dec 2023 16:21:35 +0000</pubDate>
				<category><![CDATA[java]]></category>
		<category><![CDATA[webtech]]></category>
		<category><![CDATA[Win64]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=13496</guid>

					<description><![CDATA[For those who don&#8217;t know Graylog is a neat little event logging aggregate &#38; search utility. Of course when I say &#8216;little&#8217; its kinda on the massive size. It&#8217;s one of them new age web two-point-oh things, that of course &#8230; <a href="https://virtuallyfun.com/2023/12/02/running-graylog-on-windows/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">For those who don&#8217;t know <a href="https://graylog.org/">Graylog</a> is a neat <em>little</em> event logging aggregate &amp; search utility. Of course when I say &#8216;little&#8217; its kinda on the massive size.  It&#8217;s one of them new age web two-point-oh things, that of course has a few interesting dependencies.</p>



<ul class="wp-block-list">
<li>MongoDB</li>



<li>OpenSearch</li>
</ul>



<p class="wp-block-paragraph">While I was looking at doing a deployment elsewhere, I went to get the latest versions directly from the vendors instead of relying on apt/yum/whatever.  And much to my surprise, both Mongo &amp; OpenSearch both have native Win64 versions!  What a great time!  Of course these will change, but for now</p>



<ul class="wp-block-list">
<li><a href="https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.12-signed.msi">mongodb-windows-x86_64-6.0.12-signed.msi</a></li>



<li><a href="https://artifacts.opensearch.org/releases/bundle/opensearch/2.11.0/opensearch-2.11.0-windows-x64.zip">opensearch-2.11.0-windows-x64.zip</a></li>



<li><a href="https://graylog2-releases.s3.amazonaws.com/graylog/graylog-5.2.1-linux-x64.tgz?AWSAccessKeyId=AKIAIJSI6MCSPXFVDPIA&amp;Expires=1701352386&amp;Signature=g9E%2BbBShHWY8EZEJPZoPzMhEobo%3D">graylog-5.2.1-linux-x64.tgz</a></li>
</ul>



<p class="wp-block-paragraph">I&#8217;ve stashed a copy over on <a href="https://archive.org/details/Graylog-win64-2023">archive.org</a> if anyone is insane enough to try this.  One thing as of Graylog 5.xx is that it does say to stick with a MongoDB v6.  So that&#8217;s what I did.</p>



<h2 class="wp-block-heading">MongoDB</h2>



<p class="wp-block-paragraph">One thing to keep in mind is that the MongoDB is used for the configuration of the cluster, as Graylog is usually configured in a HA cluster, but there doesn&#8217;t need to be such an emphasis on the MongoDB as the size of the database isn&#8217;t so massive.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/mongodb-compas.png"><img fetchpriority="high" decoding="async" width="1024" height="542" src="https://virtuallyfun.com/wp-content/uploads/2023/12/mongodb-compas-1024x542.png" alt="" class="wp-image-13515" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/mongodb-compas-1024x542.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/12/mongodb-compas-300x159.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/mongodb-compas-768x406.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/12/mongodb-compas-500x265.png 500w, https://virtuallyfun.com/wp-content/uploads/2023/12/mongodb-compas.png 1257w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">MongoDB Compass</figcaption></figure>



<p class="wp-block-paragraph">MongDB has a nice UI Compass, for exploring stuff.  Although browsing around you&#8217;ll see it really is just system config stuff.  So you won&#8217;t be needing some 100GB array for this stuff, more so VM&#8217;s for clustering it out if you want to go all high availability.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-1.png"><img decoding="async" width="495" height="382" src="https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-1.png" alt="" class="wp-image-13514" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-1.png 495w, https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-1-300x232.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-1-389x300.png 389w" sizes="(max-width: 495px) 100vw, 495px" /></a></figure>
</div>


<p class="wp-block-paragraph">There isn&#8217;t much to say about the MongoDB install, just set it to a drive that you want.  </p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-2.png"><img decoding="async" width="495" height="387" src="https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-2.png" alt="" class="wp-image-13513" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-2.png 495w, https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-2-300x235.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/install-mongo-on-windows-2-384x300.png 384w" sizes="(max-width: 495px) 100vw, 495px" /></a></figure>
</div>


<p class="wp-block-paragraph">Of course set it up as a service, make the user if needed/desired (I did!).  I went one step further and compressed the data directory since it&#8217;s on NTFS.  I don&#8217;t think it mattered too much, its been a few days and it&#8217;s only 300MB give or take.  The graylog dataset is very tiny as mentioned it&#8217;s just the configuration, so it wont be that much.</p>



<p class="wp-block-paragraph">After the install is done, start the service, and you can then launch Compass, and you should be able to connect to your local database.  And that&#8217;s it!</p>



<h2 class="wp-block-heading">OpenSearch</h2>



<p class="wp-block-paragraph">OpenSearch is where all the &#8216;magic&#8217; happens, where the data gets written, along with where your searches through the logs run.  If you want to emphasis something, this is it.</p>



<p class="wp-block-paragraph">OpenSearch didn&#8217;t have an install program, rather just a batch file to run and start it.  There is a opensearch-service.bat file to install the service.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/install-openearch-service.png"><img loading="lazy" decoding="async" width="985" height="257" src="https://virtuallyfun.com/wp-content/uploads/2023/12/install-openearch-service.png" alt="" class="wp-image-13507" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/install-openearch-service.png 985w, https://virtuallyfun.com/wp-content/uploads/2023/12/install-openearch-service-300x78.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/install-openearch-service-768x200.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/12/install-openearch-service-500x130.png 500w" sizes="auto, (max-width: 985px) 100vw, 985px" /></a><figcaption class="wp-element-caption">Install the opensearch service</figcaption></figure>
</div>


<p class="wp-block-paragraph">There are a few config changes I had to make:</p>



<pre class="wp-block-code"><code>cluster.name: graylog
http.port: 9200
plugins.security.disabled: true</code></pre>



<p class="wp-block-paragraph">After those changes to config\opensearch.yml you can install and run the service.  You can then hit the service via http as http://127.0.0.1:9200 and you should get something similar to this.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="743" height="376" src="https://virtuallyfun.com/wp-content/uploads/2023/12/Screenshot-2023-11-30-133836.png" alt="" class="wp-image-13511" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/Screenshot-2023-11-30-133836.png 743w, https://virtuallyfun.com/wp-content/uploads/2023/12/Screenshot-2023-11-30-133836-300x152.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/Screenshot-2023-11-30-133836-500x253.png 500w" sizes="auto, (max-width: 743px) 100vw, 743px" /><figcaption class="wp-element-caption">OpenSearch up and running</figcaption></figure>



<h2 class="wp-block-heading">Graylog</h2>



<p class="wp-block-paragraph">As you may have seen from the downloads there is no Windows version of Graylog available for download.  HOWEVER it&#8217;s a JAVA app.  So other than one weird Unixisim of where to keep the config file, it&#8217;s just a java thing.</p>



<p class="wp-block-paragraph">I did need a Linux install to set the required passwords.  Although for this sake I used the admin/admin for maximum security, so you can always just work this diff into the server.conf file.</p>



<pre class="wp-block-code"><code>--- graylog.conf.example        2023-11-15 09:05:28.000000000 +0000
+++ server.conf 2023-11-30 21:53:13.580405300 +0000
@@ -54,10 +54,10 @@
 # Generate one by using for example: pwgen -N 1 -s 96
 # ATTENTION: This value must be the same on all Graylog nodes in the cluster.
 # Changing this value after installation will render all user sessions and encrypted values in the database invalid. (e.g. encrypted access tokens)
-password_secret =
+password_secret = ihEUzuJNJOOIVYaNB29ZHZimi438NxKKzSys5UH6O9CoE7jfsrygCbuzzLzkK6hk0xdDb6e8wyAmTNhD7g9JMNZHXr1q40Ps

 # The default root user is named 'admin'
-#root_username = admin
+root_username = admin

 # You MUST specify a hash password for the root user (which you only need to initially set up the
 # system and in case you lose connectivity to your authentication backend)
@@ -65,7 +65,7 @@
 # modify it in this file.
 # Create one by using for example: echo -n yourpassword | shasum -a 256
 # and put the resulting hash value into the following line
-root_password_sha2 =
+root_password_sha2 = 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918

 # The email address of the root user.
 # Default is empty
@@ -102,7 +102,7 @@
 # If the port is omitted, Graylog will use port 9000 by default.
 #
 # Default: 127.0.0.1:9000
-#http_bind_address = 127.0.0.1:9000
+http_bind_address = 192.168.1.5:9000
 #http_bind_address = &#91;2001:db8::1]:9000

 #### HTTP publish URI
@@ -192,6 +192,7 @@
 #
 # Default: http://127.0.0.1:9200
 #elasticsearch_hosts = http://node1:9200,http://user:password@node2:19200
+elasticsearch_hosts = http://127.0.0.1:9200

 # Maximum number of attempts to connect to elasticsearch on boot for the version probe.
 #
@@ -489,7 +490,9 @@
 #auto_restart_inputs = true

 # Enable the message journal.
-message_journal_enabled = true
+# message_journal_enabled = true
+# https://github.com/Graylog2/graylog2-server/issues/12949#issuecomment-1219146839
+message_journal_enabled = false

 # The directory which will be used to store the message journal. The directory must be exclusively used by Graylog and
 # must not contain any other files than the ones created by Graylog itself.</code></pre>



<p class="wp-block-paragraph">There is a few weird things in this config, The first one being the bind address to the external NIC, the elasticsearch_hosts being set to http as we ended up removing the SSL as Graylog didn&#8217;t like the self signed certs.  However, since it&#8217;s all loopback traffic on the same machine, it does seem a bit silly to be encrypting to yourself. The other weird gotcha was message_journal_enabled, which fails after a few hours on both WSLv1 &amp; a Win64 native.  I don&#8217;t know why but it&#8217;s a common problem on non EXT2FS based filesystems, and sadly the solution everywhere is just turn it off.</p>



<p class="wp-block-paragraph">Starting Graylog is kind of easy once you work out the CLI from the Linux script, using the JVM from OpenSearch.  Take note of the log4j2, the one from that big deal vulnerability in all the fancy web apps.</p>



<pre class="wp-block-code"><code>\opensearch\jdk\bin\java.exe -Dlog4j2.formatMsgNoLookups=true ^
 -Djdk.tls.acknowledgeCloseNotify=true ^
 -Xms1g -Xmx1g -XX:+UseG1GC ^
 -XX:-OmitStackTraceInFastThrow ^
 -jar graylog.jar server -f server.conf ^
 -p graylog.pid </code></pre>



<p class="wp-block-paragraph">I run this manually.  With any luck you&#8217;ll see it connect to the databases and go live!</p>



<pre class="wp-block-code"><code>2023-12-02 15:37:37,749 INFO : org.mongodb.driver.cluster - Monitor thread successfully connected to server with description ServerDescription{address=localhost:27017, type=STANDALONE, state=CONNECTED, ok=true, minWireVersion=0, maxWireVersion=17, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, roundTripTimeNanos=29209200}
2023-12-02 15:37:45,518 INFO : org.graylog2.storage.providers.ElasticsearchVersionProvider - Elasticsearch cluster is running OpenSearch:2.11.0
2023-12-02 15:37:48,593 INFO : org.graylog2.bootstrap.ServerBootstrap - Graylog server 5.2.1+4337e8c starting up
2023-12-02 15:37:48,594 INFO : org.graylog2.bootstrap.ServerBootstrap - JRE: Eclipse Adoptium 17.0.8 on Windows 10 10.0
2023-12-02 15:37:48,594 INFO : org.graylog2.bootstrap.ServerBootstrap - Deployment: unknown
2023-12-02 15:37:48,595 INFO : org.graylog2.bootstrap.ServerBootstrap - OS: Windows 10
2023-12-02 15:37:48,595 INFO : org.graylog2.bootstrap.ServerBootstrap - Arch: amd64
2023-12-02 15:37:48,694 INFO : org.graylog2.bootstrap.ServerBootstrap - Running 67 migrations...</code></pre>



<p class="wp-block-paragraph">And from there you ought to be ready to run!?</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog.png"><img loading="lazy" decoding="async" width="1024" height="371" src="https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog-1024x371.png" alt="" class="wp-image-13517" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog-1024x371.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog-300x109.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog-768x278.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog-1536x556.png 1536w, https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog-500x181.png 500w, https://virtuallyfun.com/wp-content/uploads/2023/12/welcom-to-graylog.png 1538w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p class="wp-block-paragraph">I don&#8217;t want to re-install but it should offer a chance to setup the self signed certificate maintenance, and then you are dumped into the system.  One nice thing on Windows is you can create UDP 514 Syslog captures with no silly port reflection.  Although you could run them in WSLv1 or VM&#8217;s entirely by having all of this as native Win64 makes the memory and performance overhead much lower.</p>



<h2 class="wp-block-heading">Apache </h2>



<p class="wp-block-paragraph">I use graylog to capture my blog&#8217;s Apache stats.</p>



<p class="wp-block-paragraph">In my apache site config under the logging I added this:</p>



<pre class="wp-block-code"><code>LogFormat "{ \"version\": \"1.1\", \"host\": \"%V\", \"short_message\": \"%r\", \"timestamp\": %{%s}t, \"level\": 6, \"_user_agent\": \"%{User-Agent}i\", \"_source_ip\": \"%a\", \"_duration_usec\": %D, \"_duration_sec\": %T, \"_request_size_byte\": %O, \"_http_status_orig\": %s, \"_http_status\": %>s, \"_http_request_path\": \"%U\", \"_http_request\": \"%U%q\", \"_http_method\": \"%m\", \"_http_referer\": \"%{Referer}i\", \"_from_apache\": \"true\" }" graylog_access

CustomLog "|/usr/bin/nc -u 127.0.0.1 12201" graylog_access</code></pre>



<p class="wp-block-paragraph">Of course, keeping in mind that I do front with Cloudflare, so the source_ip will probably be different for you.  Netcat does the job nicely, and since it&#8217;s WSLv1 all the TCP/IP is unified so it can intermix just fine.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp.png"><img loading="lazy" decoding="async" width="1024" height="235" src="https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp-1024x235.png" alt="" class="wp-image-13519" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp-1024x235.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp-300x69.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp-768x176.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp-1536x352.png 1536w, https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp-500x115.png 500w, https://virtuallyfun.com/wp-content/uploads/2023/12/graylog-gelf-udp.png 1812w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">GELF UDP</figcaption></figure>
</div>


<p class="wp-block-paragraph">Setting up the input as the stock boring GELF-UDP was a snap, and in no time apache is now sending the access log to Graylog in GELF, and all is well.  It&#8217;s great!</p>



<p class="wp-block-paragraph">I know that my setup is.. far from normal, and I do have quite a few VM&#8217;s but this old machine is more than capable of hosting this site, a few others, along with the overhead of Graylog.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/12/blog-cpu.png"><img loading="lazy" decoding="async" width="825" height="557" src="https://virtuallyfun.com/wp-content/uploads/2023/12/blog-cpu.png" alt="" class="wp-image-13520" srcset="https://virtuallyfun.com/wp-content/uploads/2023/12/blog-cpu.png 825w, https://virtuallyfun.com/wp-content/uploads/2023/12/blog-cpu-300x203.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/12/blog-cpu-768x519.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/12/blog-cpu-444x300.png 444w" sizes="auto, (max-width: 825px) 100vw, 825px" /></a><figcaption class="wp-element-caption">IBM Xeon workstation</figcaption></figure>
</div>


<p class="wp-block-paragraph">Would I recommend this in production?  I have to think that since so much of this is now available on native Win64 that at least 2/3rd of it is capable.  I&#8217;m not to worried about the potential of Graylog dropping data if the host is interrupted as everything else is here.  I can understand if other people have very different thoughts on that.  Not everyone wants to run a 90&#8217;s datacentre on some old machine tucked under the Christmas Tree, but I guess I&#8217;m weird enough to do so.</p>



<p class="wp-block-paragraph">I suppose the where to go from here, is to get everything else logging to graylog so I can build dashboards, and reports.  But that sounds like a lot of work, and at the moment I think this is a good enough place to stop.  I should add that it&#8217;s been running for nearly 2 days now, so that&#8217;s good enough for prime time right? RIGHT?!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/12/02/running-graylog-on-windows/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Joining NT 4 to a SAMBA Domain Controller</title>
		<link>https://virtuallyfun.com/2023/07/24/joining-nt-4-to-a-samba-domain-controller/</link>
					<comments>https://virtuallyfun.com/2023/07/24/joining-nt-4-to-a-samba-domain-controller/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Mon, 24 Jul 2023 23:46:54 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[DEC Alpha]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[virtual networking]]></category>
		<category><![CDATA[Win64]]></category>
		<category><![CDATA[Windows NT 4.0]]></category>
		<guid isPermaLink="false">http://virtuallyfun.com/?p=13029</guid>

					<description><![CDATA[or the Unbridled rage of living on the trailing edge. I hosted a Porting Party last where where I setup my Dec Alpha as a terminal server allowing people from all over the world to connect in and cross compile &#8230; <a href="https://virtuallyfun.com/2023/07/24/joining-nt-4-to-a-samba-domain-controller/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">or the Unbridled rage of living on the trailing edge.</p>



<p class="wp-block-paragraph">I hosted a Porting Party last where where I setup my Dec Alpha as a terminal server allowing people from all over the world to connect in and cross compile software for the <a href="https://virtuallyfun.com/2023/06/26/axp64-2210-installation-media-reconstruction/" target="_blank" rel="noreferrer noopener">64bit version of Windows for the Dec Alpha</a>.  While many problems were overcome, and many more remain, I have to say the most annoying thing was joining a domain hosted by a SAMBA server.</p>



<p class="wp-block-paragraph">In my mind, I though the easiest way to get files in &amp; out of the Alpha was not to use something like IIS/FTP where it would probably lead to end-less issues with text/binary/active/passive modes, but rather I should rent a VPS, install the OS default SAMBA and just map drives.  The benefit of the VPS is that it has a public address, so no NAT is required.  The VPS had an option for either CentOS (no) or Debian 10.  I went with the Debian, and did an in place upgrade to 11, then 12. Nothing special.</p>



<p class="wp-block-paragraph">I&#8217;d never actually used SAMBA as a domain controller before, but I thought this would be a fun experiment.  So the idea is then that the VPS running SAMBA is the Domain Controller, and my Alpha joins it as a member server.  Everyone else can use Windows or any SAMBA client and map drives, and then copy files to the VPS, and then copy back and forth from the Alpha to the VPS.  This part worked fine.</p>



<p class="wp-block-paragraph">What didn&#8217;t work was SAMBA version 4.</p>



<p class="wp-block-paragraph">I had come up with this config, based on the fragments of the default config, and and hints from <a rel="noreferrer noopener" href="https://wiki.samba.org/index.php/Setting_up_Samba_as_an_NT4_PDC_(Quick_Start)" target="_blank">samba.org</a>. </p>



<pre class="wp-block-code"><code>&#91;global]
    netbios name = PDC
    passdb backend = tdbsam
    server max protocol = NT1
    username map = /usr/local/samba/etc/username.map
    workgroup = ALPHAPARTY
    server string = Samba Server
    security = user
    hosts allow = 127.0.0.1, &lt;&lt;&lt;peoples networks...>>>
    load printers = yes
    log file = /usr/local/samba/var/log.%m
    max log size = 50
    passdb backend = tdbsam
    local master = yes
    os level = 33
    domain master = yes
    preferred master = yes
    domain logons = yes
    wins support = yes
    dns proxy = no
    add user script = /usr/sbin/useradd %u
    add group script = /usr/sbin/groupadd %g
    add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
    delete user script = /usr/sbin/userdel %u
    delete user from group script = /usr/sbin/deluser %u %g
    delete group script = /usr/sbin/groupdel %g
&#91;homes]
    comment = Home Directories
    browseable = no
    writable = yes
&#91;printers]
    comment = All Printers
    path = /usr/spool/samba
    browseable = no
    guest ok = no
    writable = no
    printable = yes
&#91;public]
    comment = share for everyone
    path = /public
    public = yes
    writable = yes
    printable = no
    creaet mask = 0777</code></pre>



<p class="wp-block-paragraph">I had endless issues with the machine account not being either created correctly or not being authenticated. I tried <a rel="noreferrer noopener" href="https://www.dekart.com/howto/howto_logon/howto_logon_samba/trust_acc" target="_blank">manually creating it</a>, to no avail. No matter what I tried it didn&#8217;t work.</p>



<p class="wp-block-paragraph">Working with NT 4.0 must be depreciated or something but no matter what I tried IT JUST DIDN&#8217;T WORK.</p>



<p class="wp-block-paragraph">Feeling outraged, I purged the old Samba, downloaded the source code to 3.6.25, built that, and using the same configuration I had tried to put together, it just worked.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-joining-the-domain.png"><img loading="lazy" decoding="async" width="830" height="330" src="https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-joining-the-domain.png" alt="" class="wp-image-13026" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-joining-the-domain.png 830w, https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-joining-the-domain-300x119.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-joining-the-domain-768x305.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-joining-the-domain-500x199.png 500w" sizes="auto, (max-width: 830px) 100vw, 830px" /></a><figcaption class="wp-element-caption">Dec Alpha joining the SMB Domain</figcaption></figure>



<p class="wp-block-paragraph">Adding users was somewhat straight forward:</p>



<pre class="wp-block-code"><code>
useradd -M -s /bin/bash neozeed
passwd neozeed
/usr/local/samba/bin/smbpasswd -a neozeed
/usr/local/samba/bin/smbpasswd -e neozeed
mkdir /home/neozeed
chown neozeed /home/neozeed/</code></pre>



<p class="wp-block-paragraph">Creating both a Linux user &amp; directory, and the SAMBA credentials.  On the terminal server, all that remains was assigning a local home directory &amp; profile directories, as you really don&#8217;t want those over the WAN.</p>



<p class="wp-block-paragraph">I have no idea if this is a warning to others, or whatever the larger issue is.</p>



<h2 class="wp-block-heading">Porting Party II</h2>



<p class="wp-block-paragraph">At any rate I&#8217;ll be running another porting party this coming weekend.  I can host cross compiling fine, but we need people with the 64bit Whistler beta installed to test.  The best way to get details is over on <a rel="noreferrer noopener" href="https://discord.gg/HMwevcN" target="_blank">discord</a>.  Lately the IRC bridge is down more than it&#8217;s up, and I can&#8217;t effectively send out passwords &amp; get your network block to allow access to the RDP, since I&#8217;m not going to open up worldwide access to a Windows NT 4.0 SP5 machine.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://discord.gg/eCmXBUwx?event=1133184155547615273"><img loading="lazy" decoding="async" width="800" height="600" src="https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-64-porting-party-2.jpg" alt="" class="wp-image-13032" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-64-porting-party-2.jpg 800w, https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-64-porting-party-2-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-64-porting-party-2-768x576.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/07/alpha-64-porting-party-2-400x300.jpg 400w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a><figcaption class="wp-element-caption">Porting Party II</figcaption></figure>
</div>


<p class="wp-block-paragraph">So for anyone interested in porting their C/C++ to either the 32bit Alpha Windows, or 64bit Alpha Windows come join us on discord!</p>



<p class="wp-block-paragraph">I&#8217;ll fire up the Alpha on Friday afternoon GMT and expect the event to run all weekend!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/07/24/joining-nt-4-to-a-samba-domain-controller/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>64bit computing on a budget</title>
		<link>https://virtuallyfun.com/2023/07/01/64bit-computing-on-a-budget/</link>
					<comments>https://virtuallyfun.com/2023/07/01/64bit-computing-on-a-budget/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sat, 01 Jul 2023 22:42:10 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[Win64]]></category>
		<category><![CDATA[Windows 10]]></category>
		<guid isPermaLink="false">http://virtuallyfun.com/?p=12888</guid>

					<description><![CDATA[With all that Dec Alpha talk, and how hard it is to get hardware, and how seemingly exclusionary it is, I thought I would try to touch on a more available 64bit &#8216;risc&#8217; platform, for the masses! While a couple &#8230; <a href="https://virtuallyfun.com/2023/07/01/64bit-computing-on-a-budget/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">With all that <a href="/2023/05/15/windows-2000-64-bit-for-alpha-axp/">Dec Alpha talk</a>, and how hard it is to get hardware, and how seemingly exclusionary it is, I thought I would try to touch on a more available 64bit &#8216;risc&#8217; platform, for the masses!</p>



<p class="wp-block-paragraph">While a couple years ago I had touched on running <a rel="noreferrer noopener" href="/2020/07/24/windows-10-on-the-raspberry-pi-4/" data-type="URL" data-id="/2020/07/24/windows-10-on-the-raspberry-pi-4/" target="_blank">Windows 10 on the Raspberry Pi 4</a>, in the brave new world of 2023 getting ahold of a pi4 is expensive, hard to find, and kind of depressive, which lead me to this (old) but exciting project, the <a href="https://renegade-project.tech/en/home" target="_blank" rel="noreferrer noopener">Renegade Project</a>!</p>



<p class="wp-block-paragraph">Long story short, there exists enough drivers &amp; information to facilitate a port to the Snapdragon 845, a 64bit System On a Chip( SOAC!), meaning that if you have a device with this chip it *can* be slightly possible to install Windows 10 onto it.</p>



<figure class="wp-block-image size-full"><a href="https://renegade-project.tech/en/state"><img loading="lazy" decoding="async" width="921" height="428" src="https://virtuallyfun.com/wp-content/uploads/2023/07/renegade-system-matrix.png" alt="" class="wp-image-12889" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/renegade-system-matrix.png 921w, https://virtuallyfun.com/wp-content/uploads/2023/07/renegade-system-matrix-300x139.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/renegade-system-matrix-768x357.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/07/renegade-system-matrix-500x232.png 500w" sizes="auto, (max-width: 921px) 100vw, 921px" /></a><figcaption class="wp-element-caption">system compatibility matrix, for ants.</figcaption></figure>



<p class="wp-block-paragraph">Glancing at the system matrix, to me the glaring hole is Charging.  3 systems outright support it, all of them from Xiaomi, the <a href="https://renegade-project.tech/en/devices/xiaomi/polaris">Xiaomi Mix 2s</a>, Xiaomi Mix 3 &amp; the <a href="https://renegade-project.tech/en/devices/xiaomi/beryllium">Xiaomi PocoPhone F1</a>.  Looking around eBay to start this adventure I found a PocoPhone F1!</p>



<h2 class="wp-block-heading">Getting the Phone</h2>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-f1-ebay-listing.png"><img loading="lazy" decoding="async" width="901" height="431" src="https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-f1-ebay-listing.png" alt="" class="wp-image-12890" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-f1-ebay-listing.png 901w, https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-f1-ebay-listing-300x144.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-f1-ebay-listing-768x367.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-f1-ebay-listing-500x239.png 500w" sizes="auto, (max-width: 901px) 100vw, 901px" /></a></figure>



<p class="wp-block-paragraph">This seemed like a good start, 29.99, 128GB of flash storage, and I&#8217;d later learn 6GB of RAM.  The first problem came from Xiaomi.  Turns out that the phone was still locked, the seller had neglected to logout from his Xiaomi account.  Even worse though he had forgotten his login and password.  Calling Xiaomi support was basically worthless.  Without unlocking the phone on a reset to root the phone lead me to this:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/locked-pocophone2.jpg"><img loading="lazy" decoding="async" width="384" height="512" src="https://virtuallyfun.com/wp-content/uploads/2023/07/locked-pocophone2.jpg" alt="" class="wp-image-12894" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/locked-pocophone2.jpg 384w, https://virtuallyfun.com/wp-content/uploads/2023/07/locked-pocophone2-225x300.jpg 225w" sizes="auto, (max-width: 384px) 100vw, 384px" /></a><figcaption class="wp-element-caption">Locked!</figcaption></figure>
</div>


<p class="wp-block-paragraph">I got lucky however after talking to the seller, he agreed to go above and beyond and we were able to unlock the phone together.  So everything went well.  If you do buy one of these phones used, MAKE SURE TO CHECK THE XIOAMI login id!  It has to be unlocked and blank so you can register it and get the unlock.  It will require a valid email &amp; phone number + sim for it to send/receive SMS codes.</p>



<p class="wp-block-paragraph">Access to the site is very up &amp; down, so I archived what <a rel="noreferrer noopener" href="https://archive.org/details/miflash_unlock_en_7.6.602.42" target="_blank">I had downloaded to unlock the phone here</a>. <a href="https://archive.org/details/miflash_unlock_en_7.6.602.42" target="_blank" rel="noreferrer noopener">miflash_unlock_en_7.6.602.42.7z</a></p>



<p class="wp-block-paragraph">I should add that we&#8217;ve cleared the first few hurdles of precuring the device and unlocking it.  And I&#8217;m glossing over stuff.  Getting to this point was not easy and took a week. The unlock process is not intuitive, and I&#8217;m sure many phones are sold out there that have their google access wiped, but have not been logged out all the way, or the flash erased.  I can&#8217;t show you mine as I ended up erasing Android but be aware of this!</p>



<h2 class="wp-block-heading">Getting ready for Windows</h2>



<p class="wp-block-paragraph">Basically on the Android side there is three main modes, the boot, the recovery and the &#8216;fastboot&#8217; mode.  Holding power &amp; down brings you to fastboot, where using the fastboot tool you can load an image from your PC into ram and execute it.  <a href="https://github.com/edk2-porting/edk2-msm" target="_blank" rel="noreferrer noopener">EDK2 UEFI firmware</a>, is the first part or the renegade project you&#8217;ll encouter.  It&#8217;s really powerful, allowing you to not only boot into Windows, but it also supports a linux disk target mode, allowing you to partition and access the flash directly from a PC. Naturally this is SUPER dangerous, and <a href="https://archive.org/details/pocophone-f1-modem-files" target="_blank" rel="noreferrer noopener">backup your modem files</a>!</p>



<p class="wp-block-paragraph">With the phone unlocked softbooting E2DK you can put it into a target disk mode, connect it to a pc and partition away!</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/disk-host-mode-reduced.jpg"><img loading="lazy" decoding="async" width="467" height="865" src="https://virtuallyfun.com/wp-content/uploads/2023/07/disk-host-mode-reduced.jpg" alt="" class="wp-image-12896" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/disk-host-mode-reduced.jpg 467w, https://virtuallyfun.com/wp-content/uploads/2023/07/disk-host-mode-reduced-162x300.jpg 162w" sizes="auto, (max-width: 467px) 100vw, 467px" /></a><figcaption class="wp-element-caption">disk mode&#8230; for ants!</figcaption></figure>
</div>


<p class="wp-block-paragraph"><a rel="noreferrer noopener" href="https://renegade-project.tech/en/install" target="_blank">The guide</a> (section 1.2) advices pushing the disk tools to the phone booted up in <a rel="noreferrer noopener" href="https://archive.org/download/miflash_unlock_en_7.6.602.42/twrp-3.7.0_9-0-beryllium.img" target="_blank">twrp-3.7.0_9-0-beryllium.img</a>.  Honestly its easier to just partition it on your computer.  HOWEVER if you were to use Windows, there is a slight issue:</p>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline;">The device may no longer be able to boot into fastboot mode</span></strong></p>



<p class="wp-block-paragraph">I ran into this issue and thought I had bricked my phone.  I was actually in the middle of researching how to do a physical hard reset, <a href="https://www.youtube.com/watch?v=IlAaRQBtHKw" target="_blank" rel="noreferrer noopener">and place it into EDL mode</a> (taking it apart and finding which pads to short, when I found this section of the troubleshooting guide, where it&#8217;s the partition names.  So instead, I ended up doing the partitioning on a Virtual Machine using VMware and Ubuntu.</p>



<pre class="wp-block-code"><code>(parted) print
print
Model: SAMSUNG KLUDG4U1EA-B0C1 (scsi)
Disk /dev/block/sda: 123GB
Sector size (logical/physical): 4096B/4096B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name        Flags
 1      24.6kB  41.0kB  16.4kB               switch
 2      41.0kB  73.7kB  32.8kB               ssd
 3      73.7kB  524kB   451kB                bk01
 4      524kB   786kB   262kB                bk02
 5      786kB   1049kB  262kB                bk03
 6      1049kB  1573kB  524kB                keystore
 7      1573kB  2097kB  524kB                frp
 8      2097kB  4194kB  2097kB               bk04
 9      4194kB  8389kB  4194kB               misc
10      8389kB  16.8MB  8389kB               logfs
11      16.8MB  33.6MB  16.8MB               oops
12      33.6MB  50.3MB  16.8MB               devinfo
13      50.3MB  67.1MB  16.8MB               bk05
14      67.1MB  134MB   67.1MB  ext4         persist
15      134MB   201MB   67.1MB  ext4         persistbak
16      201MB   268MB   67.1MB               logdump
17      268MB   403MB   134MB                minidump
18      403MB   1275MB  872MB   ext4         cust
19      1275MB  1342MB  67.1MB               recovery
20      1342MB  1611MB  268MB   ext4         cache
21      1611MB  123GB   121GB                userdata</code></pre>



<p class="wp-block-paragraph">Before I did anything, this is what the phone partition table looked like.  It&#8217;s an exceptional amount.  The new parted v 3.0 that is recommended to use, doesn&#8217;t support the resize command so I had to manually do the numbers after destroying partition 21.</p>



<p class="wp-block-paragraph">Originally, I had made a 32Gb partition to keep some Android functionality but somewhere it just stopped booting.  But I didn&#8217;t care.</p>



<pre class="wp-block-code"><code>rm 21
mkpart userdata ext4 1611MB 32G
mkpart esp fat32 32G 32.5G
set 22 esp on
mkpart win ntfs 32.5GB 123G

21      1611MB  32.0GB  30.4GB  ext4         userdata
22      32.0GB  32.5GB  499MB   fat32        esp         boot, esp
23      32.5GB  123GB   90.5GB  ntfs         win         msftdata</code></pre>



<p class="wp-block-paragraph">Obviously dont follow this.  I&#8217;m only providing output as an example.</p>



<p class="wp-block-paragraph">If I were more patient, I guess I would have dd&#8217;d the entire phone to get a full entire backup. But I didn&#8217;t get this phone to run Android, so I really don&#8217;t care.</p>



<p class="wp-block-paragraph">There is a LOT of disks being presented to Windows, in case you ever wondered how those 128GB flash devices get sold with only 114GB of user space. </p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-f1-disk-partitions.png"><img loading="lazy" decoding="async" width="887" height="108" src="https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-f1-disk-partitions.png" alt="" class="wp-image-12898" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-f1-disk-partitions.png 887w, https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-f1-disk-partitions-300x37.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-f1-disk-partitions-768x94.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-f1-disk-partitions-500x61.png 500w" sizes="auto, (max-width: 887px) 100vw, 887px" /></a><figcaption class="wp-element-caption">So many partitions!</figcaption></figure>



<p class="wp-block-paragraph">And even that 112GB is actually usable!</p>



<p class="wp-block-paragraph">Remember the system partition needs the boot,esp flags, and the windows partition is msftdata.  Also make sure the partition names are either single words, or NO words.  Spaces will kill the fastboot mode.</p>



<p class="wp-block-paragraph">I put all the disks that are presented in offline mode, so I don&#8217;t get confused.  Make sure you are going to mess with the right volumes when formatting after the partitioning.  This is NOT for the novice, it would be easy to not only brick the phone but screw up your existing install.  If you have physical disks attached you don&#8217;t absolutely need, remove them or put them offline to make sure you don&#8217;t screw up.</p>



<p class="wp-block-paragraph">I used diskpart to select the appropriate volumes and format them.</p>



<pre class="wp-block-code"><code>select disk 8
select volume 5
format quick fs=fat32 label="System"
assign letter="S"
select volume 6
format quick fs=ntfs label="Windows"
assign letter="W"</code></pre>



<p class="wp-block-paragraph">This isn&#8217;t a guide, just a reflection of what I went through.</p>



<p class="wp-block-paragraph">With the disk now formatted, it&#8217;s a matter of selecting an OS to install.</p>



<p class="wp-block-paragraph">I had really bad luck picking random versions of Windows, so I looked until I could find a confirmed working version in this video, <a rel="noreferrer noopener" href="https://www.youtube.com/watch?v=t81-Ji17fGM" target="_blank">Rodando o Windows 10 ARM nativamente em um Dispositivo Android (Pocophone F1 + UEFI)</a>.  Long story short, it&#8217;s Windows build 210521-1658 with version <a rel="noreferrer noopener" href="https://github.com/edk2-porting/edk2-msm/releases/tag/v0.4" target="_blank">0.4 of the bootloader</a>.  Long story short I messed with LOTS of Windows on ARM driver sets, before I finally had the brave idea to just load it with no drivers:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-booted-to-windows.jpg"><img loading="lazy" decoding="async" width="491" height="945" src="https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-booted-to-windows.jpg" alt="" class="wp-image-12899" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-booted-to-windows.jpg 491w, https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-booted-to-windows-156x300.jpg 156w" sizes="auto, (max-width: 491px) 100vw, 491px" /></a><figcaption class="wp-element-caption">booted</figcaption></figure>
</div>


<p class="wp-block-paragraph">But that image is far too stale, and expires out very quickly, reducing any useful functionality once it&#8217;s connected to the internet.  So it&#8217;s something that probably could be fixed, but it&#8217;s far easier to just grab an image that&#8217;s newer.</p>



<p class="wp-block-paragraph">The x86_64 image I&#8217;m using now is 19045.3031, so I guessed to pick something comparable on ARM64.  I used something called <a href="https://archive.org/details/19045.3031_arm64_en-us_professional" target="_blank" rel="noreferrer noopener">19045.3031_arm64_en-us_professional</a>, although it too was out of date, but Windows update brought it up to 22H2 19045.3086 . I had tried the downloader tool and apply all the updates offline, but I had issues.  I suspect now in retrospect it was drivers.</p>



<p class="wp-block-paragraph">Another thing I learned the hard way is that some of these images have multiple OS images installed. I guess it&#8217;s de-duplication, along with compression, but be sure to index the image first!  I accidentally installed a Home version. Yuck.</p>



<pre class="wp-block-code"><code>dism /Get-ImageInfo /imagefile:install.wim

Index : 1
Name : Windows 10 Home
Description : Windows 10 Home
Size : 17,706,743,995 bytes

Index : 4
Name : Windows 10 Pro
Description : Windows 10 Pro
Size : 17,836,320,420 bytes</code></pre>



<p class="wp-block-paragraph">So just don&#8217;t go wildly apply image #1.  I wasted too much time on that one.</p>



<p class="wp-block-paragraph">But in the release I&#8217;m using it&#8217;s image #1.  I checked. Trust me.</p>



<pre class="wp-block-code"><code>dism /apply-image /ImageFile:10.0.21390.1.co_release.210521-1658_arm64fre\install.wim /index:4 /ApplyDir:W:\</code></pre>



<p class="wp-block-paragraph">The S volume needs to be populated with the UEFI boot files.  I had foolishly thought the boot.wim file would include the boot files, but instead bcdboot can set it up based on the location of a Windows install.</p>



<pre class="wp-block-code"><code>bcdboot W:\Windows /s S: /f UEFI</code></pre>



<p class="wp-block-paragraph">The next thing to do is install the drivers.</p>



<p class="wp-block-paragraph">I was lucky enough to get some insight into some driver combination to work, and I came up with this much:</p>



<pre class="wp-block-preformatted">minimal 2210.1-fix
USB beryllium v2.0rc2
FG beryllium v2.0rc2</pre>



<p class="wp-block-paragraph">The key of course is that there is a minimal set in 2210.1-fix that will bring the system up with working USB.  The FG package brings in enough of the power management to know the battery status.</p>



<pre class="wp-block-code"><code>dism /Image:W: /Add-Driver /Driver:drivers /Recurse</code></pre>



<p class="wp-block-paragraph">The drivers are not signed, so that means we need to change a bunch of boot flags.  I also turned on debugging so have Windows dump core files, so you can run analysts on them with <a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools" target="_blank" rel="noreferrer noopener">Windgb</a>.</p>



<pre class="wp-block-code"><code>S:
cd S:\EFI\Microsoft\Boot
bcdedit /store BCD /set "{default}" testsigning on
bcdedit /store BCD /set "{default}" nointegritychecks on
bcdedit /store BCD /set "{default}" recoveryenabled no
bcdedit /store BCD /set "{default}" debug on</code></pre>



<p class="wp-block-paragraph">Of course the catch being that with no drivers loaded it&#8217;s in a super basic mode, with no USB, no touch screen, no power management, no wifi no nothing.  So it&#8217;s a brick.  But at least we&#8217;ve reproduced enough to show that you can boot Windows.</p>



<p class="wp-block-paragraph">Sadly, loading all the drives from <a href="https://github.com/edk2-porting/WOA-Drivers/releases/tag/2210.1-fix" target="_blank" rel="noreferrer noopener">2210.1-fix</a> or beryllium <a href="https://github.com/edk2-porting/WOA-Drivers/releases/tag/v2.0rc2" target="_blank" rel="noreferrer noopener">v2.0rc2</a> lead to this:</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-crashed.jpg"><img loading="lazy" decoding="async" width="567" height="408" src="https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-crashed.jpg" alt="" class="wp-image-12900" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-crashed.jpg 567w, https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-crashed-300x216.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/pocophone-crashed-417x300.jpg 417w" sizes="auto, (max-width: 567px) 100vw, 567px" /></a><figcaption class="wp-element-caption">the cracked glass adds to the feeling.</figcaption></figure>



<p class="wp-block-paragraph">Add in a much needed OTG adapter and a mouse or keyboard, and you can complete the installation.  </p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-10-on-Surface-scaled-1.jpg"><img loading="lazy" decoding="async" width="592" height="546" src="https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-10-on-Surface-scaled-1.jpg" alt="" class="wp-image-12902" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-10-on-Surface-scaled-1.jpg 592w, https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-10-on-Surface-scaled-1-300x277.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-10-on-Surface-scaled-1-325x300.jpg 325w" sizes="auto, (max-width: 592px) 100vw, 592px" /></a></figure>



<p class="wp-block-paragraph">However, since I left off the majority of the device drivers as I didn&#8217;t want to spend forever trying to track it down, I used a random USB to Ethernet adapter and thankfully It just worked!</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-10-on-pocophone.png"><img loading="lazy" decoding="async" width="1024" height="597" src="https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-10-on-pocophone-1024x597.png" alt="" class="wp-image-12901" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-10-on-pocophone-1024x597.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-10-on-pocophone-300x175.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-10-on-pocophone-768x448.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-10-on-pocophone-500x292.png 500w, https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-10-on-pocophone.png 1282w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Accessing the phone over RDP.</figcaption></figure>



<p class="wp-block-paragraph">I added a fancy USB 3.0 &#8216;dock&#8217; with USB-C connector that you can plug a charger into, so that not only can the phone stay connected to power, but there is room for the Ethernet.  It also has HDMI, perhaps is the drivers were more stable, it could be a viable desktop? And I have what I wanted, which was a non Intel/AMD 64bit platform that is hopefully more reliable than the Alpha64 platform, and maybe something to do some kind of contrast of the past vs future</p>



<p class="wp-block-paragraph">This was NOT a simple thing to go through. I would be extremely hesitant to advise other people to follow suit.  But in the off chance anyone who wants to do it, might have a better idea of what is involved.</p>



<p class="wp-block-paragraph">Read the <a rel="noreferrer noopener" href="https://renegade-project.tech/en/Troubleshooting" target="_blank">Troubleshooting guide</a> &amp; the <a rel="noreferrer noopener" href="https://renegade-project.tech/en/install" target="_blank">Installation guide</a>.  Keep notes!  I would have absolutely given up, without keeping notes.</p>



<p class="wp-block-paragraph">Even simple tracking of disasters like this at least helped me along:</p>



<pre class="wp-block-code"><code>210521-1658<br>10.0.21390.1.co_release.210521-1658_arm64fre</code></pre>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<pre class="wp-block-code"><code>boot-beryllium Version 0.4.1.img</code></pre>



<pre class="wp-block-code"><code>boot-beryllium-ebbg Release - 2210.1.img</code></pre>



<pre class="wp-block-code"><code>boot-beryllium-ebbg Release - 2210.1.img

boot-beryllium-ebbg Release - 2210.1.img

boot-beryllium-ebbg Release - 2210.1.img

boot-beryllium-ebbg Release - 2210.1.img</code></pre>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<pre class="wp-block-code"><code>no drivers</code></pre>



<pre class="wp-block-code"><code>
no drivers</code></pre>



<pre class="wp-block-code"><code>
v1.1.1


v1.1


FocalTechTouch v2.0rc1


v2.0rc1</code></pre>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<pre class="wp-block-code"><code>INTERNAL_POWER_ERROR</code></pre>



<pre class="wp-block-code"><code>
installer


SYSTEM THREAD EXCEPTION NOT HANDLED


SYSTEM THREAD EXCEPTION NOT HANDLED

installer


SYSTEM THREAD EXCEPTION NOT HANDLED</code></pre>
</div>
</div>



<p class="wp-block-paragraph">Sorry the table doesn&#8217;t format well.</p>



<p class="wp-block-paragraph">TL;DR don&#8217;t do it, unless you don&#8217;t mind spending too much time on this.  Get a used Surface X instead.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/07/01/64bit-computing-on-a-budget/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title>AXP64 2210 Installation Media Reconstruction</title>
		<link>https://virtuallyfun.com/2023/06/26/axp64-2210-installation-media-reconstruction/</link>
					<comments>https://virtuallyfun.com/2023/06/26/axp64-2210-installation-media-reconstruction/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Mon, 26 Jun 2023 06:30:14 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[DEC Alpha]]></category>
		<category><![CDATA[guest post]]></category>
		<category><![CDATA[Win64]]></category>
		<guid isPermaLink="false">http://virtuallyfun.com/?p=12854</guid>

					<description><![CDATA[Introduction Unfortunately, during this amazing period, the Dec Alpha I had acquired specifically for this research had died. However, I was able to find an amazing group of people to not only go through with this research but take it &#8230; <a href="https://virtuallyfun.com/2023/06/26/axp64-2210-installation-media-reconstruction/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-2000.png"><img loading="lazy" decoding="async" width="800" height="600" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-2000.png" alt="" class="wp-image-12884" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-2000.png 800w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-2000-300x225.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-2000-768x576.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-2000-400x300.png 400w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a><figcaption class="wp-element-caption">Yes, Neko is ALPHA64 Powered!</figcaption></figure>



<p class="wp-block-paragraph"><strong>Introduction</strong></p>



<p class="wp-block-paragraph">Unfortunately, during this amazing period, the Dec Alpha I had acquired specifically for this research had died.  However, I was able to find an amazing group of people to not only go through with this research but take it upon themselves to provide an amazing working ISO image release!  Needless to say, this is beyond my knowledge, and this is obviously a guest post</p>



<h2 class="wp-block-heading">Background</h2>



<p class="wp-block-paragraph">In ~1997, Microsoft started work on a project dedicated to porting Windows NT to use 64-bit addressing on 64-bit machines. Before this, Windows NT used the 32-bit mode or ABI of 64-bit machines. This effort was internally referred to as &#8220;Sundown&#8221;, otherwise referred to as &#8220;Win64&#8221;. The ports consisted of not only to the Itanium/IA-64 architecture (which later shipped as Windows XP 64-Bit Edition) but also to the 64-bit DEC Alpha architecture.</p>



<p class="wp-block-paragraph">Compaq dropped support for Windows on Alpha in mid-1999, and Microsoft stopped the development of 32-bit Windows NT for Alpha soon afterwards, with Windows 2000 build 2128 (RC2) being the last build. Due to a lack of physical IA-64 hardware and the slowness of the simulator, Microsoft continued to work on the AXP64 port of Windows till mid-2000, to help fix general issues related to 64-bit addressing. You can read more about this project <a href="https://learn.microsoft.com/en-us/previous-versions/technet-magazine/cc718978(v=msdn.10)" target="_blank" rel="noreferrer noopener">here</a>.</p>



<p class="wp-block-paragraph">In May 2023, a disk image containing an installation of an AXP64 build of Windows XP (Whistler) build 2210 <a href="https://virtuallyfun.com/2023/05/15/windows-2000-64-bit-for-alpha-axp/" target="_blank" rel="noreferrer noopener">was discovered by a guest reader of this site</a>, and a team (amarioguy, neozeed, pivotman319, starfrost and Tenox) was later assembled to help make this release possible.</p>



<h2 class="wp-block-heading">Why Repack To ISO</h2>



<p class="wp-block-paragraph">When I saw <a href="https://virtuallyfun.com/2023/05/15/windows-2000-64-bit-for-alpha-axp/" target="_blank" rel="noreferrer noopener">the news about this build</a>, I asked my friends why didn’t neozeed or Tenox share the full disk image, they told me that the disk image contained PII (Personally Identifiable Data) and neeozeed would like to have them removed first. I have some experience with cleaning up Windows builds, so I joined their Discord server and offered to help, then I got sent a full sector dump of that disk. I scanned the build 2210 partition with a file recovery tool that I stole from a data recovery shop when I worked there, and to my amazement, quite a few files in the deleted \$WIN_NT.~LS directory (a place for holding temporary setup files) survived (more importantly, setupdd.sys, txtsetup.sif, setupldr and the hiv*.inf files). Since all the files required for a clean install from ISO/CD are there, this build can be repacked into an ISO which is guaranteed to contain no personal information!</p>



<h2 class="wp-block-heading">Recovery</h2>



<p class="wp-block-paragraph">The first thing I did was I recovered all of the files in the deleted \$WIN_NT.~LS directory, but since the integrity of files recovered from NTFS and FAT partitions cannot be guaranteed, I checked every single one of them. Most of those files were Microsoft Cabinet (CAB) archives, so I wrote a tool called CabChk to verify that 1) they are valid CAB archives, 2) there is only one file per archive, 3) the name of the compressed file is the same as the name of the archive and 4) the compressed file extracts fine. This helped me to verify most of those 4600 files, but I had to verify the remaining 300 or so files by hand because they’re not CAB archives and that task alone took days to complete. After verifying all the recovered files, it turned out that 85% of them survived while the remaining 15% didn’t.</p>



<h2 class="wp-block-heading">Repacking</h2>



<p class="wp-block-paragraph">A lot of those overwritten files are actually in the Windows directory (NT64) of that 2210 install, so I copied them out and recompressed the appropriate ones. I set my computer to the time zone Microsoft used and compressed them with the Cabinet Tool (CABARC) parameters Microsoft used. Microsoft used UTC-8 and the following CABARC parameters:</p>



<pre class="wp-block-code"><code>CABARC -m LZX:21 N &#91;output_cab] &#91;input_file]</code></pre>



<p class="wp-block-paragraph">After repacking and copying over the files, the number of missing files went from about 650 all the way down to roughly 30 :).</p>



<h2 class="wp-block-heading">Missing User Mode Setup Stub</h2>



<p class="wp-block-paragraph">Unfortunately, usetup.exe was one of those 30 or so files. It doesn’t do much as it’s a stub, but nonetheless without it, text mode setup won’t start. My original idea was to decompile I386 build 2211’s usetup.exe (as it has only about 20 functions) and recompile it for AXP64 with the toolchain discovered earlier on, but I had to wait for someone to cross compile it on an Alpha for me. While I was waiting, I searched that partition for substrings in the I386 usetup.exe and I got a match!</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover1.png"><img loading="lazy" decoding="async" width="1024" height="574" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover1-1024x574.png" alt="" class="wp-image-12855" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover1-1024x574.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover1-300x168.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover1-768x430.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover1-500x280.png 500w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover1.png 1373w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">It’s compressed, but since LZNT1 is a simple and weak-ish compression algorithm, you can sort of recognise the original data. I cobbled together an LZNT1 decompressor and decompressed that 32 KiB chunk, and indeed it’s the AXP64 usetup.exe!</p>



<pre class="wp-block-preformatted">E:\Projects\LZNTTool&gt;LZNTTool -d "E:\Whistler 2210 AXP64 Recovery\usetup_compressed_0.bin" "E:\Whistler 2210 AXP64 Recovery\usetup_0.bin"
Decompression successful.

E:\Projects\LZNTTool&gt;wsl hexdump -C -v -s 0x600 -n 0x200 "../../Whistler 2210 AXP64 Recovery/usetup_0.bin"</pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover-hexlist.png"><img loading="lazy" decoding="async" width="528" height="472" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover-hexlist.png" alt="" class="wp-image-12873" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover-hexlist.png 528w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover-hexlist-300x268.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover-hexlist-336x300.png 336w" sizes="auto, (max-width: 528px) 100vw, 528px" /></a></figure>
</div>


<p class="wp-block-paragraph">I then searched for strings expected to be in the second 32 KiB chunk and then the third chunk and so on, until I got all of them recovered. After decompressing all of the 5 chunks, I concatenated them together into one single executable and yay, we now have the original AXP64 usetup.exe!</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover2.png"><img loading="lazy" decoding="async" width="1024" height="677" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover2-1024x677.png" alt="" class="wp-image-12856" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover2-1024x677.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover2-300x198.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover2-768x508.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover2-454x300.png 454w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover2.png 1229w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<pre class="wp-block-code"><code>E:\Projects\PEChkSum&gt;PEChkSum "E:\Whistler 2210 AXP64 Recovery\usetup.exe"
Expected checksum is: 0x00035E4E
Actual checksum is: 0x00035E4E

"E:\Whistler 2210 AXP64 Recovery\usetup.exe" is valid.
</code></pre>



<h2 class="wp-block-heading">Broken Driver Cabinet</h2>



<p class="wp-block-paragraph">pivotman319 pointed out to me that some files in driver.cab were dead, and indeed, Setup did not work with that broken cabinet:</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover3.jpg"><img loading="lazy" decoding="async" width="944" height="728" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover3.jpg" alt="" class="wp-image-12857" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover3.jpg 944w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover3-300x231.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover3-768x592.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover3-389x300.jpg 389w" sizes="auto, (max-width: 944px) 100vw, 944px" /></a><figcaption class="wp-element-caption">Crash to the NT firmware Monitor</figcaption></figure>



<p class="wp-block-paragraph">There were 2 copies of driver.cab on that disk, sadly the deleted one in $WIN_NT.~LS got overwritten and the one in \NT64\Driver Cache\axp64… well, 68 errors <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f622.png" alt="😢" class="wp-smiley" style="height: 1em; max-height: 1em;" />:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="671" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover4-1024x671.png" alt="" class="wp-image-12858" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover4-1024x671.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover4-300x197.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover4-768x503.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover4-458x300.png 458w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover4.png 1186w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Looking at the broken files, I noticed a pattern – all of them came from 3 blocks – 5, 36 and 37. What on Earth are &#8220;blocks&#8221;? Well, let’s talk about how CAB archives work first.</p>



<p class="wp-block-paragraph">Files in CAB archives are stored in blocks, where each block stores 1 or more files. When files are added to a CAB archive, they are all concatenated together into one big file. The concatenated big file is then split into multiple sub-blocks (with default size of 0x8000 bytes) and each of them gets compressed and then concatenated together to form the compressed block. So, for small corruptions (bit-rots and etc.), theoretically only 0x8000 bytes are lost and the rest should still be recoverable, but tools like 7-Zip will refuse to extract anything beyond the point of corruption.</p>



<p class="wp-block-paragraph">Now looking at the corruption in driver.cab, 2 of the 3 blocks can be fully recovered because we have all of those files in uncompressed form. Block 5 contains mostly printer-related files that are arch- and build-independent, so they can all be borrowed from build 2211 i386. Block 37 has only 1 broken file (win32k.sys) which exists on the hard drive (in system32). To fix these blocks, I simply took the uncompressed files, compressed them and replaced the broken blocks with the newly created ones.</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover5.png"><img loading="lazy" decoding="async" width="1024" height="573" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover5-1024x573.png" alt="" class="wp-image-12859" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover5-1024x573.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover5-300x168.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover5-768x430.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover5-500x280.png 500w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover5.png 1185w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">And after fixing block 37:</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover6.png"><img loading="lazy" decoding="async" width="1024" height="573" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover6-1024x573.png" alt="" class="wp-image-12860" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover6-1024x573.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover6-300x168.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover6-768x430.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover6-500x280.png 500w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover6.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">I then ran my CabScan tool on the fixed CAB and as expected, there is only one bad sub-block left:</p>



<pre class="wp-block-code"><code>E:\Projects\CabScan&gt;CabScan "E:\Whistler 2210 AXP64 Recovery\driver (fix).cab"
Offset 0x0253FD75:
    Expected checksum is 0x568C0AC3
    Checksum is 0x1CEBB9DE
    Original size is 0x00008000
    Compressed size is 0x00003862

Detected 1 bad sub-block(s) in 1 bad block(s).
</code></pre>



<p class="wp-block-paragraph">So, what can we say about the corruption?</p>



<ol class="wp-block-list">
<li>Size: 4 bytes</li>



<li>Location: Last 4 bytes of a 0x2000 section</li>



<li>Pattern: Starts with 00 F0 (possibly the result of a buggy NTFS driver)</li>
</ol>



<p class="wp-block-paragraph">Knowing these, I immediately located the 4 corrupted bytes in block 36:</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover7.png"><img loading="lazy" decoding="async" width="1024" height="573" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover7-1024x573.png" alt="" class="wp-image-12861" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover7-1024x573.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover7-300x168.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover7-768x430.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover7-500x280.png 500w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover7.png 1142w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">So how did I recover those 4 bytes, did I brute force them? Nope, I used the checksum to calculate them! Here is the checksum algorithm Microsoft used for CAB archives:</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover8.jpg"><img loading="lazy" decoding="async" width="1024" height="706" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover8-1024x706.jpg" alt="" class="wp-image-12862" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover8-1024x706.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover8-300x207.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover8-768x530.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover8-435x300.jpg 435w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover8.jpg 1070w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">CAB checksum algorithm</figcaption></figure>



<p class="wp-block-paragraph">And as you can see, it’s very simple, so it took me almost no time to work out the 4 missing bytes (4A ED 16 71) from the checksum 0x568C0AC3! With block 36 fixed, as expected, all files are now good!</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover9.png"><img loading="lazy" decoding="async" width="1024" height="672" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover9-1024x672.png" alt="" class="wp-image-12863" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover9-1024x672.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover9-300x197.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover9-768x504.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover9-457x300.png 457w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover9.png 1128w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">Buggy Setup Loader</h2>



<p class="wp-block-paragraph">I thought I got everything necessary recovered and fixed, so I packaged up the files and sent them to G-Nug85 to test… and it didn’t work:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="932" height="659" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover10.jpg" alt="" class="wp-image-12864" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover10.jpg 932w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover10-300x212.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover10-768x543.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover10-424x300.jpg 424w" sizes="auto, (max-width: 932px) 100vw, 932px" /></figure>



<p class="wp-block-paragraph">It failed to find A321064.PAL in the [SourceDisksFiles] section of txtsetup.sif. Well, this is an AXP64 build and A321064.PAL is a 32-bit PALcode image… why would it be there? Needless to say, copying that file to the disc image didn’t help. I have literally spent days on this stupid issue and who would have expected this:</p>



<pre class="wp-block-code"><code>E:\Whistler 2210 AXP64 Recovery&gt;wsl strings -t x SETUPLDR | wsl grep -i '.pal'
  91f68 A321064.PAL
</code></pre>



<p class="wp-block-paragraph">The culprit of the problem was they hard coded the name &#8220;A321064.PAL&#8221;… in the setup loader executable… how stupid!</p>



<p class="wp-block-paragraph">We can tell from this that Microsoft has never made ISOs or discs for AXP64 builds, otherwise they would’ve found and fixed this bug. Well, maybe they did eventually try installing AXP64 builds from disc, because it’s fixed by the time of Windows XP SP1, but that’s long after this build:</p>



<pre class="wp-block-code"><code>#if defined(_AXP64_)
        SlGetDisk("a121165.p64");
#else
        SlGetDisk("A321064.PAL");
#endif
</code></pre>



<p class="wp-block-paragraph">Oh well, I replaced the hard coded &#8220;A321064.PAL&#8221; with &#8220;a121165.p64&#8221; and what do you know, it’s working!</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover11.jpg"><img loading="lazy" decoding="async" width="878" height="545" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover11.jpg" alt="" class="wp-image-12865" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover11.jpg 878w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover11-300x186.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover11-768x477.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover11-483x300.jpg 483w" sizes="auto, (max-width: 878px) 100vw, 878px" /></a></figure>



<h2 class="wp-block-heading">Finishing Touches</h2>



<p class="wp-block-paragraph">That install went smoothly, but one error did pop up during second stage setup:</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover12.jpg"><img loading="lazy" decoding="async" width="932" height="671" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover12.jpg" alt="" class="wp-image-12866" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover12.jpg 932w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover12-300x216.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover12-768x553.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover12-417x300.jpg 417w" sizes="auto, (max-width: 932px) 100vw, 932px" /></a></figure>



<p class="wp-block-paragraph">A missing driver – big deal, hey? We actually have the build 2209 AXP64 version of this driver, so I injected it to the ISO and Setup happily accepted it.</p>



<p class="wp-block-paragraph">I’ve also copied the Arc Installation Program (ARCINST) from Windows 2000 build 2128 AXP32 to the AXP64 directory of the ISO, because it is required for disk partitioning if you don’t have AlphaBIOS (and yes, it works because it’s not a Windows executable).</p>



<h2 class="wp-block-heading">Supported Machines</h2>



<p class="wp-block-paragraph">Microsoft compiled several HALs for this build, but not all of them are listed in txtsetup.sif, the following machines are supported by default:</p>



<ul class="wp-block-list">
<li>Digital Personal Workstation A-Series</li>



<li>Digital AlphaServer 4&#215;00 5/xxx Family</li>



<li>Digital AlphaServer/AlphaStation 1200 5/xxx Family</li>



<li>Digital Alpha 21264/Tsunami Uniprocessor</li>



<li>Digital Alpha 21264/Tsunami Multiprocessor</li>
</ul>



<p class="wp-block-paragraph">The following machines may be supported if you replace textsetup.sif with a modified version:</p>



<ul class="wp-block-list">
<li>Digital Alpha EB164</li>



<li>Digital Alpha PC164SX</li>



<li>Digital Alpha XL 300/366 Family</li>



<li>Digital AlphaPC 164LX</li>



<li>Digital AlphaServer 1000 5/xxx Family</li>



<li>Digital AlphaServer 1000a 5/xxx Family</li>



<li>AlphaServer 800 5/xxx (Corelle)</li>



<li>AlphaStation 600A 5/500 (Alcor Primo)</li>
</ul>



<p class="wp-block-paragraph">We have only tested this build on the Digital Personal Workstation A-Series, AlphaServer DS10 and the AlphaServer 800, so there is no guarantee that the other HALs work (though they should).</p>



<p class="wp-block-paragraph">Also, since this is a checked build, it does run slower than a retail build, and by default it will expect you to have a kernel debugger attached.  Be sure to add the /NODEBUG flag to the bootloader to improve performance.  I had noticed the SDL spite test demo going from 60fps to 70fps on my Alpha Personal Workstation 500a before it had died.</p>



<h2 class="wp-block-heading">For Preservation</h2>



<p class="wp-block-paragraph">As I have said earlier on, Microsoft has never made ISOs/discs for AXP64 builds, so please don’t preserve the ISO file (eg: don’t upload it to BetaArchive). I know BA prefer ISOs over folder dumps, so let me tell you this mrpijey, the ISO is a franken-build with a patched Setup Loader and files from 2128, 2209 and 2211. We have a folder dump of the original files from the \NTDev network share with original high-precision timestamps just for preservation, so please for the sake of preservation, use this. Also don’t even think about creating an ISO out of the folder dump, you’ll end up with a non-existent thing that doesn’t work.</p>



<h2 class="wp-block-heading">Download</h2>



<p class="wp-block-paragraph">ISO for Installation: <a href="https://mega.nz/file/q5AhhDJR#MsLYxxvmAdYDQ101fUHoGyzJ5Pk0EFsc2xdYH1p9qxQ" target="_blank" rel="noreferrer noopener">https://mega.nz/file/q5AhhDJR#MsLYxxvmAdYDQ101fUHoGyzJ5Pk0EFsc2xdYH1p9qxQ</a><br><a href="https://archive.org/details/axp64-2210-installable" target="_blank" rel="noreferrer noopener">Whistler 2210 axp64 installable</a></p>



<p class="wp-block-paragraph">Folder Dump for Preservation: <a href="https://mega.nz/file/r5gE3RxQ#4VfviMdQo44wJZT0df0cw8o4kE30lvSQKBZklma0mtg" target="_blank" rel="noreferrer noopener">https://mega.nz/file/r5gE3RxQ#4VfviMdQo44wJZT0df0cw8o4kE30lvSQKBZklma0mtg</a></p>



<p class="wp-block-paragraph">Modified TXTSETUP.SIF For Other Machines: <a href="https://mega.nz/file/zsBVAJDD#5oQVM6U2AwseTJ54lOmN1E7BHTDFuwOuWdZOykmXP8E" target="_blank" rel="noreferrer noopener">https://mega.nz/file/zsBVAJDD#5oQVM6U2AwseTJ54lOmN1E7BHTDFuwOuWdZOykmXP8E</a></p>



<h2 class="wp-block-heading">Special Thanks</h2>



<ul class="wp-block-list">
<li>to the person who sent us the disk image</li>



<li>to Microsoft for not wiping that disk before throwing it away</li>



<li>to pivotman319 for verifying recovered files and finding missing files</li>



<li>to Tenox for testing</li>



<li>to G-Nug85 for testing and providing photos used in this post</li>



<li>to Furball for testing</li>



<li>to lbdm for testing</li>



<li>to myself… I guess?</li>
</ul>



<h2 class="wp-block-heading">Special Offer &#8211; Windows 2000 RC2 AXP32 Full ISO</h2>



<p class="wp-block-paragraph">The ISO on BetaArchive is the same as the ISO on WinWorld, which was originally named usa_2128_axpfre_win2000.pro_beta3_cairo.iso… hmm, that doesn’t sound very &#8216;Microsoft&#8217;!</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover13.png"><img loading="lazy" decoding="async" width="600" height="225" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover13.png" alt="" class="wp-image-12867" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover13.png 600w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover13-300x113.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover13-500x188.png 500w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>



<p class="wp-block-paragraph">Yep, definitely not original. Even worse, SETUP.EXE is broken/truncated:</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover14.png"><img loading="lazy" decoding="async" width="1024" height="671" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover14-1024x671.png" alt="" class="wp-image-12868" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover14-1024x671.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover14-300x197.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover14-768x503.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover14-458x300.png 458w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover14.png 1056w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">The fact that the AXP32 2128 ISO we’ve had for over a decade is both unoriginal and incomplete is truly shocking! Well, I have something to offer &#8211; an at least complete Windows 2000 build 2128 AXP32 ISO from my private collection:</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover15.png"><img loading="lazy" decoding="async" width="1024" height="671" src="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover15-1024x671.png" alt="" class="wp-image-12869" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover15-1024x671.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover15-300x197.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover15-768x503.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover15-458x300.png 458w, https://virtuallyfun.com/wp-content/uploads/2023/06/axp64-recover15.png 1056w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">The SETUP.EXE in this ISO is good and complete! The CDIMAGE parameters used to build this image matches what was used to build ISOs of AXP32 builds from the same era and the disc label (W2PAS_EN) is much more sensible than &#8220;Cairo_2128&#8221;. The only thing that doesn’t make sense is the timestamp – 1999-09-23 12:00:00. Microsoft used 1999-09-10 as the timestamp for all other copies of build 2128, so I’m not sure why this one is different. It’s worth noting that all files from the incomplete ISO also have the strange 1999-09-23 timestamp, so I guess it’s not a coincidence ¯\_(ツ)_/¯.</p>



<p class="wp-block-paragraph">Download: <a rel="noreferrer noopener" href="https://mega.nz/file/qoYyUbLB#oKArX_Qqh_kjnESnT6dQD8NGTg05_CMhKMxW4FKuhjE" target="_blank">https://mega.nz/file/qoYyUbLB#oKArX_Qqh_kjnESnT6dQD8NGTg05_CMhKMxW4FKuhjE</a><a href="https://archive.org/details/w-2-pas-en">Windows 2000 build 2128 DEC Alpha</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/06/26/axp64-2210-installation-media-reconstruction/feed/</wfw:commentRss>
			<slash:comments>21</slash:comments>
		
		
			</item>
		<item>
		<title>Windows 2000 64-bit for Alpha AXP / AXP64 / ALPHA64 (build 2210)</title>
		<link>https://virtuallyfun.com/2023/05/15/windows-2000-64-bit-for-alpha-axp/</link>
					<comments>https://virtuallyfun.com/2023/05/15/windows-2000-64-bit-for-alpha-axp/#comments</comments>
		
		<dc:creator><![CDATA[tenox]]></dc:creator>
		<pubDate>Mon, 15 May 2023 12:42:21 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[DEC Alpha]]></category>
		<category><![CDATA[guest post]]></category>
		<category><![CDATA[Win64]]></category>
		<category><![CDATA[2210]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[axp]]></category>
		<category><![CDATA[axp64]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">http://virtuallyfun.com/?p=12532</guid>

					<description><![CDATA[(this is a guest post by Antoni Sawicki aka tenox) Hinted by friends on Discord, Neozeed recently &#8220;re-discovered&#8221; a Win64 compiler for AXP64 / ALPHA64. It came as part of Windows Platform SDK from 1999. Microsoft wanted developers to test-compile &#8230; <a href="https://virtuallyfun.com/2023/05/15/windows-2000-64-bit-for-alpha-axp/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>(this is a guest post by Antoni Sawicki aka tenox)</em></p>



<p class="wp-block-paragraph">Hinted by friends on <a href="https://discord.gg/HMwevcN" target="_blank" rel="noreferrer noopener">Discord</a>, Neozeed recently <a href="https://virtuallyfun.com/2023/05/05/hiding-in-plain-sight-the-64bit-dec-alpha-c-compiler/" data-type="URL" data-id="https://virtuallyfun.com/2023/05/05/hiding-in-plain-sight-the-64bit-dec-alpha-c-compiler/">&#8220;re-discovered&#8221; a Win64 compiler </a>for AXP64 / ALPHA64. It came as part of Windows Platform SDK from 1999. Microsoft wanted developers to test-compile their code to see if it&#8217;s &#8220;64bit ready&#8221;, well ahead of the 64bit hardware even being available. However, this was just a cross-compiler and there was no way of running any of the binaries. Trying the compiler, just for fun, I built Alpha64 version of <a href="https://github.com/tenox7/aclock" data-type="URL" data-id="https://github.com/tenox7/aclock">Aclock</a> &#8211; with zero hopes of ever being able to run it. </p>



<p class="wp-block-paragraph">Sadly, 64-bit Alpha AXP Windows was never released outside of Redmond. There are some known surviving machines with AXP64 stored at Microsoft Archives. In fact I saw one with my own eyes, last time I visited there some 10 years ago:</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/AXP64.jpg"><img loading="lazy" decoding="async" width="1024" height="684" src="https://virtuallyfun.com/wp-content/uploads/2023/05/AXP64.jpg" alt="DEC Alpha with AXP64 Windows at Microsoft Archives." class="wp-image-12533" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/AXP64.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/05/AXP64-300x200.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/AXP64-768x513.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/05/AXP64-449x300.jpg 449w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">DEC Alpha with AXP64 Windows codename &#8220;Sundown&#8221;, at Microsoft Archives, 2014</figcaption></figure>



<p class="wp-block-paragraph">The machine in picture above was featured in <a href="https://learn.microsoft.com/en-us/previous-versions/technet-magazine/cc718978(v=msdn.10)" data-type="URL" data-id="https://learn.microsoft.com/en-us/previous-versions/technet-magazine/cc718978(v=msdn.10)">a blog post by Raymond Chen</a>, which is a must read on this topic. It will give you background info on the whole Alpha 64bit situation. </p>



<p class="wp-block-paragraph">And that would be the end of the story&#8230; if not for one generous reader, who contacted Neozeed after his previous <a href="https://virtuallyfun.com/2023/05/05/hiding-in-plain-sight-the-64bit-dec-alpha-c-compiler/" data-type="URL" data-id="https://virtuallyfun.com/2023/05/05/hiding-in-plain-sight-the-64bit-dec-alpha-c-compiler/">post</a>, and shared a disk image&#8230; containing non other but a 64bit build of Windows 2000 for Alpha AXP! The reader got it from a lot of random hard disks, bought from an e-waste and completely forgot about it until they saw the blog post!</p>



<p class="wp-block-paragraph">The image was previously installed on <a href="https://en.wikipedia.org/wiki/Digital_Personal_Workstation" data-type="URL" data-id="https://en.wikipedia.org/wiki/Digital_Personal_Workstation">Digital Personal Workstation</a>. Having a PWS500 with ZuluSCSI at hand, I was able to slap the image on an SD card and boot it up:</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/splash.png"><img loading="lazy" decoding="async" width="637" height="475" src="https://virtuallyfun.com/wp-content/uploads/2023/05/splash.png" alt="" class="wp-image-12534" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/splash.png 637w, https://virtuallyfun.com/wp-content/uploads/2023/05/splash-300x224.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/splash-402x300.png 402w" sizes="auto, (max-width: 637px) 100vw, 637px" /></a><figcaption class="wp-element-caption">Windows 2000 Alpha64 Splash Screen</figcaption></figure>



<p class="wp-block-paragraph">The system BSOD shortly after. Turns out, this is a checked (debug) build and requires a permanently attached kernel debugger to even boot up (yes tried /nodebug flag). Initially <code>WinDbg</code> and <code>kd.exe</code> refused to work, as the target CPU did not match the host (the exact error code is: <code>KD Version has unknown processor architecture</code>). After some deliberation and help from friends, I learned that <code>alphakd.exe</code> can be run on x86 machine to cross debug an Alpha target. Most importantly it works with AXP64! We were able to continue the boot!</p>



<p class="wp-block-paragraph">Another problem was that the system came up with &#8220;Found New Hardware&#8221; wizard and there was no functioning keyboard and mouse to click through it. Yes, I tried safe mode, VGA mode, etc., but nothing worked. The system was completely stuck on this dialog:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/newhw.png"><img loading="lazy" decoding="async" width="439" height="318" src="https://virtuallyfun.com/wp-content/uploads/2023/05/newhw.png" alt="" class="wp-image-12558" style="width:373px;height:271px" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/newhw.png 439w, https://virtuallyfun.com/wp-content/uploads/2023/05/newhw-300x217.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/newhw-414x300.png 414w" sizes="auto, (max-width: 439px) 100vw, 439px" /></a></figure>
</div>


<p class="wp-block-paragraph">Fortunately, the network card worked. Neozeed and I built a 64bit version of <a href="https://github.com/neozeed/rlogin-NT" target="_blank" rel="noreferrer noopener">rlogin daemon</a> and hacked it in to the registry. Then we remotely executed a <code>VBScript</code> that clicked through 20+ &#8220;found new hardware&#8221; and &#8220;install unsigned driver&#8221; dialogs. Eventually, a <strong>PCI to ISA bridge</strong> was found and keyboard and mouse came up!</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/aclock-axp64.png"><img loading="lazy" decoding="async" width="1024" height="818" src="https://virtuallyfun.com/wp-content/uploads/2023/05/aclock-axp64-1024x818.png" alt="" class="wp-image-12535" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/aclock-axp64-1024x818.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/05/aclock-axp64-300x240.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/aclock-axp64-768x614.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/05/aclock-axp64-375x300.png 375w, https://virtuallyfun.com/wp-content/uploads/2023/05/aclock-axp64.png 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Aclock running on 64bit Windows on Alpha AXP</figcaption></figure>



<p class="wp-block-paragraph">Unfortunately there are no identifying marks that would easily prove that this is a 64bit Alpha AXP build. The only way to tell is because there is no WOW, even for AXP32. You can&#8217;t run 32bit Alpha binaries. It will only run executables produced with the ALPHA64 compiler. This also means in practice there is no self hosted, native compiler. You have to cross compile on 32bit NT4 or 2KRC.</p>



<p class="wp-block-paragraph">For sake of search engines the build number is <strong>2210</strong>, the full string: <code>2210.main.000302-1934</code>.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="767" height="548" src="https://virtuallyfun.com/wp-content/uploads/2023/05/buildlabel-1.png" alt="" class="wp-image-12608" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/buildlabel-1.png 767w, https://virtuallyfun.com/wp-content/uploads/2023/05/buildlabel-1-300x214.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/buildlabel-1-420x300.png 420w" sizes="auto, (max-width: 767px) 100vw, 767px" /></figure>



<p class="wp-block-paragraph"><strong>Update</strong> I have copied and ran a x86 `winmsd.exe` from Windows NT 4.0 and this came out:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="445" height="457" src="https://virtuallyfun.com/wp-content/uploads/2023/06/msd.png" alt="" class="wp-image-12755" srcset="https://virtuallyfun.com/wp-content/uploads/2023/06/msd.png 445w, https://virtuallyfun.com/wp-content/uploads/2023/06/msd-292x300.png 292w" sizes="auto, (max-width: 445px) 100vw, 445px" /></figure>



<p class="wp-block-paragraph">How is it possible to run x86 binary? Because of <strong>Fx!32</strong>.</p>



<p class="wp-block-paragraph"><strong>Update:</strong> So what else is in the image?</p>



<p class="wp-block-paragraph">First of all, everyone is asking about <strong>Pinball</strong>&#8230; Yes, it&#8217;s there, but it won&#8217;t start:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="819" src="https://virtuallyfun.com/wp-content/uploads/2023/05/axp64pinball-1024x819.png" alt="" class="wp-image-12614" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/axp64pinball-1024x819.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/05/axp64pinball-300x240.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/axp64pinball-768x615.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/05/axp64pinball-375x300.png 375w, https://virtuallyfun.com/wp-content/uploads/2023/05/axp64pinball.png 1281w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">In addition, I can&#8217;t open the event details. Maybe one day we can debug it with NTSD.</p>



<p class="wp-block-paragraph">Other than that, it has some basic stuff, the every other Windows would have. Internet Explorer 5.5, agent: <code>Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)</code>. Sadly <code>msinfo32</code> doesn&#8217;t work, unable to connect to a service. </p>



<p class="wp-block-paragraph">The image, similar to other private builds, comes with <a href="https://devblogs.microsoft.com/oldnewthing/20181224-00/?p=100545" data-type="URL" data-id="https://devblogs.microsoft.com/oldnewthing/20181224-00/?p=100545">Internal Developer Workstation (IDW)</a>. It&#8217;s a set of developer tools, that most of (but not all) were released in Platform SDK and/or Windows Resource Kit.</p>



<p class="wp-block-paragraph">There are a bunch of unix like utilities, <code>cp</code>, <code>mv</code>, <code>ls</code>, <code>kill</code>, etc.:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="677" height="338" src="https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.29.25-PM.png" alt="" class="wp-image-12625" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.29.25-PM.png 677w, https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.29.25-PM-300x150.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.29.25-PM-500x250.png 500w" sizes="auto, (max-width: 677px) 100vw, 677px" /></figure>



<p class="wp-block-paragraph"><code>build.exe</code> version 4.03.2209</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="676" height="338" src="https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.33.03-PM.png" alt="" class="wp-image-12626" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.33.03-PM.png 676w, https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.33.03-PM-300x150.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.33.03-PM-500x250.png 500w" sizes="auto, (max-width: 676px) 100vw, 676px" /></figure>



<p class="wp-block-paragraph">It can build for AXP32 and IA64:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="675" height="338" src="https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.34.07-PM.png" alt="" class="wp-image-12627" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.34.07-PM.png 675w, https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.34.07-PM-300x150.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.34.07-PM-500x250.png 500w" sizes="auto, (max-width: 675px) 100vw, 675px" /></figure>



<p class="wp-block-paragraph">There also are two famous text editors, <a href="https://virtuallyfun.com/2018/03/11/microsoft-editor/" data-type="post" data-id="8226">Microsoft Editor aka MEP / Z</a> and Stevie, VI clone:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="659" height="339" src="https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.35.10-PM.png" alt="" class="wp-image-12628" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.35.10-PM.png 659w, https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.35.10-PM-300x154.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/Screenshot-2023-05-19-at-10.35.10-PM-500x257.png 500w" sizes="auto, (max-width: 659px) 100vw, 659px" /></figure>



<p class="wp-block-paragraph">Lastly, lets explore 64bit Alpha AXP gaming scene! While Pinball doesn&#8217;t work, IDW comes with an impressive amount of games. Microsoft engineers must have been busy playing these while waiting for builds to complete&#8230;</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="820" src="https://virtuallyfun.com/wp-content/uploads/2023/05/64bit-gaming-1024x820.png" alt="" class="wp-image-12617" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/64bit-gaming-1024x820.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/05/64bit-gaming-300x240.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/64bit-gaming-768x615.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/05/64bit-gaming-375x300.png 375w, https://virtuallyfun.com/wp-content/uploads/2023/05/64bit-gaming.png 1278w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">64-bit gaming on Alpha AXP</figcaption></figure>



<p class="wp-block-paragraph">We have 4 different card games, FreeCell, Solitaire, Gold and Cruel. Also Taipei game, TicTactics, Reversi, Minesweeper and Snake.</p>



<p class="wp-block-paragraph">AXP64 NT also has fully working OpenGL Screensavers:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="410" height="456" src="https://virtuallyfun.com/wp-content/uploads/2023/05/64bisaverz.png" alt="" class="wp-image-12623" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/64bisaverz.png 410w, https://virtuallyfun.com/wp-content/uploads/2023/05/64bisaverz-270x300.png 270w" sizes="auto, (max-width: 410px) 100vw, 410px" /></figure>



<p class="wp-block-paragraph">If you want to see this live in action. We going to be exhibiting on <a href="https://vcfed.org/events/vintage-computer-festival-west/vcf-west-exhibits/" data-type="URL" data-id="https://vcfed.org/events/vintage-computer-festival-west/vcf-west-exhibits/">VCF West 2023 in August</a>, alongside other NT RISC machines. Come and see us!</p>



<p class="wp-block-paragraph"><a href="https://betawiki.net/wiki/Windows_XP_build_2210" data-type="link" data-id="https://betawiki.net/wiki/Windows_XP_build_2210">BetaArchive Wiki Link</a></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/05/15/windows-2000-64-bit-for-alpha-axp/feed/</wfw:commentRss>
			<slash:comments>48</slash:comments>
		
		
			</item>
		<item>
		<title>Hiding in plain sight: The 64bit Dec Alpha C compiler</title>
		<link>https://virtuallyfun.com/2023/05/05/hiding-in-plain-sight-the-64bit-dec-alpha-c-compiler/</link>
					<comments>https://virtuallyfun.com/2023/05/05/hiding-in-plain-sight-the-64bit-dec-alpha-c-compiler/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 05 May 2023 22:36:15 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[DEC Alpha]]></category>
		<category><![CDATA[Digitial]]></category>
		<category><![CDATA[Win64]]></category>
		<guid isPermaLink="false">http://virtuallyfun.com/?p=12500</guid>

					<description><![CDATA[Of all the Microsoft Windows NT versions, the few of the rare ones include: Sadly, I don&#8217;t have any leads on any of the above. But while I was looking for the first public Win64 compiler that I could remember, &#8230; <a href="https://virtuallyfun.com/2023/05/05/hiding-in-plain-sight-the-64bit-dec-alpha-c-compiler/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Of all the Microsoft Windows NT versions, the few of the rare ones include:</p>



<ul class="wp-block-list">
<li>The i860 version, the original N-Ten that put the NT in NT.</li>



<li>The DEC 5000/MIPS version</li>



<li>The Clipper version</li>



<li>The SPARC/LE version</li>



<li>The HP9000/HPPA version</li>



<li>The AXP64/ALPHA64 port, the first 64bit version of 2000</li>
</ul>



<p class="wp-block-paragraph">Sadly, I don&#8217;t have any leads on any of the above.  But while I was looking for the first public Win64 compiler that I could remember, it was just the frontend to the Itanium compiler, not letting you actually compile anything. Anyways I was able to find these two downloads:</p>



<ul class="wp-block-list">
<li><a href="https://archive.org/details/ms-win2k-platsdk-rc2" target="_blank" rel="noreferrer noopener">Microsoft Platform SDK for Windows 2000 &#8211; RC2</a></li>



<li><a href="https://archive.org/details/MSDN_Development_Platform_Disc_6_October_1999_X05-05207_1999" target="_blank" rel="noreferrer noopener">MSDN Development Platform (Disc 6)(October 1999)(X05 05207)(1999)</a></li>
</ul>



<p class="wp-block-paragraph">And both of them have the same Win64 SDK, which includes this quick note in the readme:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Platform SDK support for Win64(tm)</p>



<p class="wp-block-paragraph">This release of the Platform SDK will allow you to test-compile your<br>code for Win64. It supports the new 64-bit data types and pre-beta<br>releases of an IA64 compiler and an ALPHA64 compiler and linker.</p>
<cite>1999 Platform SDK</cite></blockquote>



<p class="wp-block-paragraph">It&#8217;s the same thing on both discs from what I remember.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-1.png"><img loading="lazy" decoding="async" width="847" height="621" src="https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-1.png" alt="" class="wp-image-12652" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-1.png 847w, https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-1-300x220.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-1-768x563.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-1-409x300.png 409w" sizes="auto, (max-width: 847px) 100vw, 847px" /></a></figure>



<p class="wp-block-paragraph">Installing the SDK is certainly a product of it&#8217;s time, with a seemingly incredible amount of products to support.  </p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-2.png"><img loading="lazy" decoding="async" width="813" height="648" src="https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-2.png" alt="" class="wp-image-12651" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-2.png 813w, https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-2-300x239.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-2-768x612.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-2-376x300.png 376w" sizes="auto, (max-width: 813px) 100vw, 813px" /></a></figure>



<p class="wp-block-paragraph">I haven&#8217;t tested yet, but I have to wonder how integrated all the tools are into Visual C++.  Stay tuned?!</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-3.png"><img loading="lazy" decoding="async" width="852" height="645" src="https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-3.png" alt="" class="wp-image-12650" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-3.png 852w, https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-3-300x227.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-3-768x581.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-3-396x300.png 396w" sizes="auto, (max-width: 852px) 100vw, 852px" /></a></figure>



<p class="wp-block-paragraph">Also there was still POSIX support.  Windows 2000 was the last to support all the subsystems.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-4.png"><img loading="lazy" decoding="async" width="856" height="626" src="https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-4.png" alt="" class="wp-image-12649" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-4.png 856w, https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-4-300x219.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-4-768x562.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/05/platform-sdk-2000-on-alpha-install-4-410x300.png 410w" sizes="auto, (max-width: 856px) 100vw, 856px" /></a></figure>



<p class="wp-block-paragraph">And of course, the star of the attraction, the 64 bit Test Compiler.  There is an incredible amount of products and options to select, It must have been absolute chaos at Microsoft in the late 90s!</p>



<p class="wp-block-paragraph">If you are on an intel based system, the 64bit compiler will be the top half of the Itanium compiler.  It lacks the C2.DLL so it will not emit any assembly or object files.  There is no linker libraries either, so for all intents and purposes it&#8217;s useless.</p>



<p class="wp-block-paragraph">However, if you were to install this super preliminary SDK on a Dec Alpha you would instead discover a version 13 build of Microsoft C/C++</p>



<pre class="wp-block-code"><code>Microsoft (R) &amp; Digital (TM) Alpha C/C++ Optimizing Compiler Version 13.00.8499
Copyright (C) Microsoft Corp 1984-1999.
Copyright (C) Digital Equipment Corporation 1992-1999.
Copyright (C) Compaq Computer Corporation 1998-1999.
All rights reserved.</code></pre>



<p class="wp-block-paragraph">The Visual C++ 6.0 on the Dec Alpha however is a version 12 compiler.  So this is a big surprise for AlphaNT users!</p>



<p class="wp-block-paragraph">And added to version 13 are these flags:</p>



<pre class="wp-block-code"><code>  /Ap32 enable P32 model
  /Ap64 enable P64 model (default)</code></pre>



<p class="wp-block-paragraph">That&#8217;s right!  It turns out that the AXP64 compiler set has been hiding in plain sight for <strong><em><span style="text-decoration: underline;">DECADES</span></em></strong>.  I know that it&#8217;s so unlikely that we&#8217;d ever see any public release of a 64bit version of Windows for the Alpha, but oddly enough the compiler, headers and libraries are all there.  <strong>YES</strong> You can make full EXE&#8217;s for AXP64/Alpha64.  Of course with no OS, so it&#8217;s not like you can run them.</p>



<p class="wp-block-paragraph">The compilers have been tested on NT 4.0 Terminal Server &amp; 2000 RC2.</p>



<p class="wp-block-paragraph">For anyone wondering here is how I ran it to compile then link a 64bit exe:</p>



<pre class="wp-block-code"><code>C:\proj&gt;cl /c /Ap64 mt.c /Fomt64.obj
Microsoft (R) &amp; Digital (TM) Alpha C/C++ Optimizing Compiler Version 13.00.8499
Copyright (C) Microsoft Corp 1984-1999.
Copyright (C) Digital Equipment Corporation 1992-1999.
Copyright (C) Compaq Computer Corporation 1998-1999.
All rights reserved.

mt.c

C:\proj&gt;link mt64.obj /MACHINE:ALPHA64
Microsoft (R) Incremental Linker Version 6.20.8528
Copyright (C) Microsoft Corp 1992-1999. All rights reserved</code></pre>



<p class="wp-block-paragraph">There is no point sharing the EXE as I mentioned above, there is nothing to run it on. But for the heck of it, here is uuencode compiled into assembly in both 32bit &amp; 64bit mode.</p>



<div class="wp-block-file"><a id="wp-block-file--media-791f9f4a-1112-4c02-983a-ce1ac1aa6948" href="https://virtuallyfun.com/wp-content/uploads/2023/05/uuencode-axp_asm.zip">uuencode-axp_asm</a><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/uuencode-axp_asm.zip" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-791f9f4a-1112-4c02-983a-ce1ac1aa6948">Download</a></div>



<p class="wp-block-paragraph">I can&#8217;t imagine why, but for people who want to take them apart <a href="https://archive.org/details/axp64sdktools" target="_blank" rel="noreferrer noopener">you can download the tools here</a>.</p>



<p class="wp-block-paragraph">Sadly as of today, there is no way to test. There is one surviving machine with Windows 2003 AXP64, outlined in <a href="https://learn.microsoft.com/en-us/previous-versions/technet-magazine/cc718978(v=msdn.10)" data-type="URL" data-id="https://learn.microsoft.com/en-us/previous-versions/technet-magazine/cc718978(v=msdn.10)">an article by Raymond Chen</a>. Its a great read about how Alpha64 NT port came to be. The machine is still sitting in Microsoft Archives. Hopefully one day someone can dig it out.</p>



<p class="wp-block-paragraph">That said there is also version 13 compilers for both Itanium &amp; AMD64.  Although we can do stuff with the AMD64 port which I will try to write into something a bit more.. sane.</p>



<p class="wp-block-paragraph">I found this a few weeks ago, and thanks to @tenox for giving me Alpha access to play a little with this hidden gem.  It&#8217;s still crazy we&#8217;ve all had Alpha64 tool access the entire time.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/05/05/hiding-in-plain-sight-the-64bit-dec-alpha-c-compiler/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Not as fun as Win64 Itanium, the earliest AMD64 Windows I can find</title>
		<link>https://virtuallyfun.com/2023/05/03/not-as-fun-as-win64-itanium-the-earliest-amd64-windows-i-can-find/</link>
					<comments>https://virtuallyfun.com/2023/05/03/not-as-fun-as-win64-itanium-the-earliest-amd64-windows-i-can-find/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Wed, 03 May 2023 22:50:57 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[QEMU]]></category>
		<category><![CDATA[Win64]]></category>
		<category><![CDATA[Windows XP]]></category>
		<category><![CDATA[x64]]></category>
		<category><![CDATA[x86_64]]></category>
		<guid isPermaLink="false">http://virtuallyfun.com/?p=12396</guid>

					<description><![CDATA[It does feel a lot like Windows XP for the Itanium, that strange half world of existence. It&#8217;s also from September 2003, the release image being named: 5.2.3790.1069.srv03_spbeta.030905-1850_amd64fre_client-professional_retail_en-us-AB1PXFRE_EN.iso I&#8217;m sure if you google around you can easily find it. To &#8230; <a href="https://virtuallyfun.com/2023/05/03/not-as-fun-as-win64-itanium-the-earliest-amd64-windows-i-can-find/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">It does feel a lot like Windows XP for the Itanium, that strange half world of existence.  It&#8217;s also from September 2003, the release image being named: 5.2.3790.1069.srv03_spbeta.030905-1850_amd64fre_client-professional_retail_en-us-AB1PXFRE_EN.iso</p>



<p class="wp-block-paragraph">I&#8217;m sure if you google around you can easily find it.</p>



<p class="wp-block-paragraph">To install you apparently need an early AMD 64 processor, otherwise it&#8217;ll trap on the installer.  Back in 2004, I got a newly refurbished AMD Athlon 64 3200+ processor, from Tiger Direct.  The machine was only a few months old, and I was able to get an early XP build for it.  Oddly enough it&#8217;s simple enough to install on Qemu.  I was able to use 0.90 &amp; 7.20, jumping at extremes, although the PCI NIC IRQ&#8217;s do jump around on 0.90 preventing the networking from working. </p>



<p class="wp-block-paragraph">I had a <strong><em>LOT</em></strong> of trouble getting a bootable hard disk image out of this for some reason.  So I&#8217;ve found keeping C around 2,000 Megabytes, and installing MS-DOS 5/6 got me a bootable system.  Also preserving the FAT disk.  Not sure why but doing formats of FAT or NTFS always seemed to result in a non bootable disk</p>



<pre class="wp-block-code"><code>qemu-system-x86_64w.exe -cpu Opteron_G1-v1 -hda 2g.vmdk -m 512 -M pc-i440fx-2.0 -net nic,model=rtl8139,netdev=f00 -netdev user,id=f00,hostfwd=tcp::5555-:3389 -usb -usbdevice tablet  -accel tcg,thread=multi</code></pre>



<p class="wp-block-paragraph"><em>Special thanks to RoyTam for the suggestion of the USB tablet &amp; turning TCG multithreaded for v7+ of Qemu</em></p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/setup-xp-eval-1069.png"><img loading="lazy" decoding="async" width="722" height="464" src="https://virtuallyfun.com/wp-content/uploads/2023/05/setup-xp-eval-1069.png" alt="" class="wp-image-12397" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/setup-xp-eval-1069.png 722w, https://virtuallyfun.com/wp-content/uploads/2023/05/setup-xp-eval-1069-300x193.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/setup-xp-eval-1069-467x300.png 467w" sizes="auto, (max-width: 722px) 100vw, 722px" /></a></figure>



<p class="wp-block-paragraph">Setting up is pretty normal.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="722" height="464" src="https://virtuallyfun.com/wp-content/uploads/2023/05/setup-xp-eval-1069-360-days.png" alt="" class="wp-image-12398" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/setup-xp-eval-1069-360-days.png 722w, https://virtuallyfun.com/wp-content/uploads/2023/05/setup-xp-eval-1069-360-days-300x193.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/setup-xp-eval-1069-360-days-467x300.png 467w" sizes="auto, (max-width: 722px) 100vw, 722px" /></figure>



<p class="wp-block-paragraph">You do get 360 days to use the beta.  More than enough for simple testing.  I&#8217;ve seen that the <a href="https://betawiki.net/wiki/Windows_Server_2003_build_3790.1069" target="_blank" rel="noreferrer noopener">timebomb doesn&#8217;t work correctly</a> so it may work forever.  But it&#8217;s so rough around the edges, I can&#8217;t see anyone trying to run this native in 2023.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="548" src="https://virtuallyfun.com/wp-content/uploads/2023/05/power-and-performance-of-64-bit.png" alt="" class="wp-image-12399" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/power-and-performance-of-64-bit.png 642w, https://virtuallyfun.com/wp-content/uploads/2023/05/power-and-performance-of-64-bit-300x256.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/power-and-performance-of-64-bit-351x300.png 351w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph">Notice it&#8217;s all AMD branding.  Intel officially didn&#8217;t have their EMT64 Pentium 4&#8217;s, although IBM was pushing Intel hard to get them out the door.  <a href="https://www.computerworld.com/article/2574718/microsoft-releases-windows-xp-public-beta-for-athlon-64.html" target="_blank" rel="noreferrer noopener">And I think they held off on a larger x86_64 launch as Intel had not publicly caved</a>.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="642" height="548" src="https://virtuallyfun.com/wp-content/uploads/2023/05/serial.png" alt="" class="wp-image-12400" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/serial.png 642w, https://virtuallyfun.com/wp-content/uploads/2023/05/serial-300x256.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/serial-351x300.png 351w" sizes="auto, (max-width: 642px) 100vw, 642px" /></figure>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="802" height="668" src="https://virtuallyfun.com/wp-content/uploads/2023/05/xp64-installed.png" alt="" class="wp-image-12401" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/xp64-installed.png 802w, https://virtuallyfun.com/wp-content/uploads/2023/05/xp64-installed-300x250.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/xp64-installed-768x640.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/05/xp64-installed-360x300.png 360w" sizes="auto, (max-width: 802px) 100vw, 802px" /></figure>



<p class="wp-block-paragraph">And in no time you are up and running.  I find the mouse really weird on Qemu, so I always enable the remote desktop function and find it much easier to deal with.</p>



<figure class="wp-block-image size-full"><a href="https://archive.org/details/pinball-3790-1069.7z"><img loading="lazy" decoding="async" width="722" height="521" src="https://virtuallyfun.com/wp-content/uploads/2023/05/xp-x64-pinball.jpg" alt="" class="wp-image-12402" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/xp-x64-pinball.jpg 722w, https://virtuallyfun.com/wp-content/uploads/2023/05/xp-x64-pinball-300x216.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/xp-x64-pinball-416x300.jpg 416w" sizes="auto, (max-width: 722px) 100vw, 722px" /></a></figure>



<p class="wp-block-paragraph">One of the advantages of RDP is that audio redirection does work, so you can play pinball!</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/sysfadr-crashing.png"><img loading="lazy" decoding="async" width="352" height="375" src="https://virtuallyfun.com/wp-content/uploads/2023/05/sysfadr-crashing.png" alt="" class="wp-image-12510" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/sysfadr-crashing.png 352w, https://virtuallyfun.com/wp-content/uploads/2023/05/sysfadr-crashing-282x300.png 282w" sizes="auto, (max-width: 352px) 100vw, 352px" /></a></figure>
</div>


<p class="wp-block-paragraph">One annoying thing (to me) is that the SysFader process will hang all the time locking explorer.exe .  Along with that it&#8217;ll leave phantom UI elements haning around like the Run&#8230; above.  Yes, its annoying!</p>



<figure class="wp-block-image size-large is-resized"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/system-performance-turn-off-fade.png"><img loading="lazy" decoding="async" src="https://virtuallyfun.com/wp-content/uploads/2023/05/system-performance-turn-off-fade-1024x263.png" alt="" class="wp-image-12512" width="632" height="156"/></a></figure>



<p class="wp-block-paragraph">The solution is of course System Properties, and Performance, and either disable the Fade elements, or just turn off all the &#8216;eye candy&#8217; which basically doesn&#8217;t really exist for this release anyways.</p>



<p class="wp-block-paragraph">While there is some DirectX support, it is most likely just simple GDI passthrough, and of course no acceleration as the OpenGL screensavers run incredibly slow.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/xp64-limited-hardware.png"><img loading="lazy" decoding="async" width="593" height="476" src="https://virtuallyfun.com/wp-content/uploads/2023/05/xp64-limited-hardware.png" alt="" class="wp-image-12403" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/xp64-limited-hardware.png 593w, https://virtuallyfun.com/wp-content/uploads/2023/05/xp64-limited-hardware-300x241.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/xp64-limited-hardware-374x300.png 374w" sizes="auto, (max-width: 593px) 100vw, 593px" /></a><figcaption class="wp-element-caption">And thanks to <a rel="noreferrer noopener" href="https://betawiki.net/wiki/Windows_XP_build_3790.1069" target="_blank">betawiki.net</a> for some hints &amp; tips. I haven&#8217;t tried the VMware path, since AFAIK there is no other NIC drivers for this release.</figcaption></figure>



<p class="wp-block-paragraph">As mentioned, hardware support is VERY limited.  The single audio driver is a MPU401 port.  This obviously was meant for an exceptionally limited audience.</p>



<p class="wp-block-paragraph">The one thing I cannot find, is any version of a Platform SDK that targets AMD64 so early.  The earliest I can find is version 14 from 2005.</p>



<p class="wp-block-paragraph">The 2005 compiler does have this note:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The Microsoft® C/C++ AMD64 Processor Family-targeting compiler is a cross-compiler targeting the AMD64 processor family. The compiler runs on an x86 or AMD64 computer running Microsoft Windows® XP or Microsoft Windows® Server 2003. It is the compiler used for Microsoft® internal development and is used for building Microsoft Windows NT®, Microsoft SQL Server®, and other major applications. For debugging we suggest the use of WinDbg for AMD64. Visual Studio Whidbey will support the use of the Visual Studio debugger for debugging AMD64 applications.</p>
<cite>2005-06 &#8211; 2944.0 &#8211; Platform SDK for Windows Server 2003 SP1 (April 2005 Edition)</cite></blockquote>



<p class="wp-block-paragraph">With the compiler being:</p>



<pre class="wp-block-code"><code>Microsoft (R) C/C++ Optimizing Compiler Version 14.00.40310.41 for AMD64
Copyright (C) Microsoft Corporation. All rights reserved.</code></pre>



<p class="wp-block-paragraph">If anyone knows of anything earlier, I&#8217;d love to know!  If only for the sake of messing around with it.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/05/03/not-as-fun-as-win64-itanium-the-earliest-amd64-windows-i-can-find/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>Missing Neko98</title>
		<link>https://virtuallyfun.com/2022/11/11/missing-neko98/</link>
					<comments>https://virtuallyfun.com/2022/11/11/missing-neko98/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 11 Nov 2022 20:21:34 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[neko]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[sourceforge]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Visual studio 2010]]></category>
		<category><![CDATA[Win64]]></category>
		<category><![CDATA[x64]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=12052</guid>

					<description><![CDATA[With the collapse of my vpsland archive, Neko has become lost once more again. Thankfully I had some fragment backups so I have been able to bring Neko back from the grave. again. First I dumped everything I had over &#8230; <a href="https://virtuallyfun.com/2022/11/11/missing-neko98/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2022/11/Neko-ARM.png"><img loading="lazy" decoding="async" width="848" height="562" src="https://virtuallyfun.com/wp-content/uploads/2022/11/Neko-ARM.png" alt="" class="wp-image-12053" srcset="https://virtuallyfun.com/wp-content/uploads/2022/11/Neko-ARM.png 848w, https://virtuallyfun.com/wp-content/uploads/2022/11/Neko-ARM-300x199.png 300w, https://virtuallyfun.com/wp-content/uploads/2022/11/Neko-ARM-768x509.png 768w, https://virtuallyfun.com/wp-content/uploads/2022/11/Neko-ARM-453x300.png 453w" sizes="auto, (max-width: 848px) 100vw, 848px" /></a><figcaption>Neko on ARM</figcaption></figure>
</div>


<p class="wp-block-paragraph">With the collapse of my vpsland archive, Neko has become lost once more again.  Thankfully I had some fragment backups so I have been able to bring Neko back from the grave. again.</p>



<p class="wp-block-paragraph">First I dumped everything I had over on <a rel="noreferrer noopener" href="https://sourceforge.net/projects/neko98/files/Original%20Zips/" target="_blank">sourceforge</a>.  With a bit more digging I found the old <a rel="noreferrer noopener" href="https://sourceforge.net/projects/neko98/files/WindowsNT-4.0/" target="_blank">RISC versions</a> as well.  I even found the <a href="https://sourceforge.net/projects/neko98/files/Visual%20C%2B%2B%202010/neko-ia64.zip/download" target="_blank" rel="noreferrer noopener">Itanium version</a>, although I lost the ARM version.  Im not sure I have an 8gb pi4 anymore, but I&#8217;d like to get one when/if prices stop being insane.  Anyways I also uploaded the <a rel="noreferrer noopener" href="https://github.com/neozeed/neko98/tree/master" target="_blank">source to github</a>, since it&#8217;s more hip and acceptable for zoomers.  I do have to say the git mirror command was everything I&#8217;d hoped it&#8217;d be.</p>



<pre class="wp-block-preformatted">git push --mirror https://github.com/neozeed/neko98.git</pre>



<p class="wp-block-paragraph">It literally was that easy.</p>



<p class="wp-block-paragraph">I put a binary built with <a rel="noreferrer noopener" href="https://github.com/neozeed/neko98/releases/tag/VC2010_x64-v1.0" target="_blank">Visual C++ 2010 SP1 over there too</a>.  Although if you need Visual C++ <a href="https://sourceforge.net/projects/neko98/files/Visual%20C%2B%2B%20Runtimes/" target="_blank" rel="noreferrer noopener">2010 runtimes, I put them on sourceforge</a>.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="586" height="462" data-id="12054" src="https://virtuallyfun.com/wp-content/uploads/2022/11/neko-configure.png" alt="" class="wp-image-12054" srcset="https://virtuallyfun.com/wp-content/uploads/2022/11/neko-configure.png 586w, https://virtuallyfun.com/wp-content/uploads/2022/11/neko-configure-300x237.png 300w, https://virtuallyfun.com/wp-content/uploads/2022/11/neko-configure-381x300.png 381w" sizes="auto, (max-width: 586px) 100vw, 586px" /></figure>
</figure>



<p class="wp-block-paragraph">Also I should add in the settings make sure you click &#8220;Always On Top&#8221;, otherwise Neko will be hidden to the desktop surface and you won&#8217;t see him.</p>



<p class="wp-block-paragraph">I hope you enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2022/11/11/missing-neko98/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Space Cadet 3D Pinball reverse engineered!</title>
		<link>https://virtuallyfun.com/2021/10/04/space-cadet-3d-pinball-reverse-engineered/</link>
					<comments>https://virtuallyfun.com/2021/10/04/space-cadet-3d-pinball-reverse-engineered/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Mon, 04 Oct 2021 04:34:51 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[Win64]]></category>
		<category><![CDATA[x64]]></category>
		<category><![CDATA[x86_64]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=11406</guid>

					<description><![CDATA[With all the controversy over 64bit pinball, and where and how things appeared, then disappeared to the discovery that the x64 version was a thing, but it was left off the install manifest but shipped on CD, along with my &#8230; <a href="https://virtuallyfun.com/2021/10/04/space-cadet-3d-pinball-reverse-engineered/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">With all the controversy over 64bit pinball, and where and how things appeared, then disappeared to the discovery that the x64 version was a thing, but it was left off the install manifest but shipped on CD, along with my simple script to just extract it, the problem was that ARM32/64 users were left in the cold.</p>



<p class="wp-block-paragraph">Don&#8217;t get me wrong, the original 32bit exe runs fine under emulation, but who wants emulation when you can have NATIVE CODE?!  You&#8217;d have to try to find the source code (lol good luck!) or reverse engineer the program.  And that&#8217;s what happened, enter: </p>



<p class="wp-block-paragraph"><a href="https://github.com/k4zmu2a/SpaceCadetPinball">k4zmu2a/SpaceCadetPinball: Decompilation of 3D Pinball for Windows â€“ Space Cadet (github.com)</a></p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2021/10/pinball-arm64-50pct.png"><img loading="lazy" decoding="async" width="960" height="540" src="https://virtuallyfun.com/wp-content/uploads/2021/10/pinball-arm64-50pct.png" alt="" class="wp-image-11408" srcset="https://virtuallyfun.com/wp-content/uploads/2021/10/pinball-arm64-50pct.png 960w, https://virtuallyfun.com/wp-content/uploads/2021/10/pinball-arm64-50pct-300x169.png 300w, https://virtuallyfun.com/wp-content/uploads/2021/10/pinball-arm64-50pct-768x432.png 768w, https://virtuallyfun.com/wp-content/uploads/2021/10/pinball-arm64-50pct-500x281.png 500w" sizes="auto, (max-width: 960px) 100vw, 960px" /></a><figcaption>64bit ARM Pinball!</figcaption></figure>



<p class="wp-block-paragraph">I&#8217;m using Visual Studio 2019 to build this, and it was great it *just worked*.  Hurray!</p>



<p class="wp-block-paragraph">There is also a rebuild going on for SDL to bring Space Cadet Pin Ball to Linux and beyond.  The only downside is that it uses a number of &#8216;new C++ features&#8217; locking out older platforms.  I&#8217;d done some work to dumb it down although there is a bit of this new fangled C++ I&#8217;m unsure of what is going on.  So that means, unfortunately Itanium users are left in the dark, as Visual Studio 2010 is too old.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2021/10/04/space-cadet-3d-pinball-reverse-engineered/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>AMD64 Pinball extravaganza!</title>
		<link>https://virtuallyfun.com/2021/09/13/amd64-pinball-extravaganza/</link>
					<comments>https://virtuallyfun.com/2021/09/13/amd64-pinball-extravaganza/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Mon, 13 Sep 2021 03:54:54 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[Win64]]></category>
		<category><![CDATA[Windows XP]]></category>
		<category><![CDATA[x64]]></category>
		<category><![CDATA[x86_64]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=11320</guid>

					<description><![CDATA[With all the talk of 64bit versions of Pinball I thought I&#8217;d share simple script to extract Pinball from an XP x64 CD-ROM so you can take it with you. It&#8217;s portable so thats nice too, although it doesn&#8217;t use &#8230; <a href="https://virtuallyfun.com/2021/09/13/amd64-pinball-extravaganza/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">With all the talk of 64bit versions of Pinball I thought I&#8217;d share simple script to extract Pinball from an XP x64 CD-ROM so you can take it with you. It&#8217;s portable so thats nice too, although it doesn&#8217;t use any wad/pak/zip files so all the assets are loose files:</p>



<pre class="wp-block-code"><code>expand f:\amd64\font.da_ font.dat<br>expand f:\amd64\pinball.da_ pinball.dat<br>expand f:\amd64\pinball.ex_ pinball.exe<br>expand f:\amd64\pinball.in_ pinball.inf<br>expand f:\amd64\pinball.mi_ pinball.mid<br>expand f:\amd64\pinball2.mi_ pinball2.mid<br>expand f:\amd64\sound1.wa_ sound1.wav<br>expand f:\amd64\sound104.wa_ sound104.wav<br>expand f:\amd64\sound105.wa_ sound105.wav<br>expand f:\amd64\sound108.wa_ sound108.wav<br>expand f:\amd64\sound111.wa_ sound111.wav<br>expand f:\amd64\sound112.wa_ sound112.wav<br>expand f:\amd64\sound12.wa_ sound12.wav<br>expand f:\amd64\sound13.wa_ sound13.wav<br>expand f:\amd64\sound131.wa_ sound131.wav<br>expand f:\amd64\sound136.wa_ sound136.wav<br>expand f:\amd64\sound14.wa_ sound14.wav<br>expand f:\amd64\sound16.wa_ sound16.wav<br>expand f:\amd64\sound17.wa_ sound17.wav<br>expand f:\amd64\sound18.wa_ sound18.wav<br>expand f:\amd64\sound181.wa_ sound181.wav<br>expand f:\amd64\sound19.wa_ sound19.wav<br>expand f:\amd64\sound20.wa_ sound20.wav<br>expand f:\amd64\sound21.wa_ sound21.wav<br>expand f:\amd64\sound22.wa_ sound22.wav<br>expand f:\amd64\sound24.wa_ sound24.wav<br>expand f:\amd64\sound240.wa_ sound240.wav<br>expand f:\amd64\sound243.wa_ sound243.wav<br>expand f:\amd64\sound25.wa_ sound25.wav<br>expand f:\amd64\sound26.wa_ sound26.wav<br>expand f:\amd64\sound27.wa_ sound27.wav<br>expand f:\amd64\sound28.wa_ sound28.wav<br>expand f:\amd64\sound29.wa_ sound29.wav<br>expand f:\amd64\sound3.wa_ sound3.wav<br>expand f:\amd64\sound30.wa_ sound30.wav<br>expand f:\amd64\sound34.wa_ sound34.wav<br>expand f:\amd64\sound35.wa_ sound35.wav<br>expand f:\amd64\sound36.wa_ sound36.wav<br>expand f:\amd64\sound38.wa_ sound38.wav<br>expand f:\amd64\sound39.wa_ sound39.wav<br>expand f:\amd64\sound4.wa_ sound4.wav<br>expand f:\amd64\sound42.wa_ sound42.wav<br>expand f:\amd64\sound43.wa_ sound43.wav<br>expand f:\amd64\sound45.wa_ sound45.wav<br>expand f:\amd64\sound49.wa_ sound49.wav<br>expand f:\amd64\sound49d.wa_ sound49d.wav<br>expand f:\amd64\sound5.wa_ sound5.wav<br>expand f:\amd64\sound50.wa_ sound50.wav<br>expand f:\amd64\sound528.wa_ sound528.wav<br>expand f:\amd64\sound53.wa_ sound53.wav<br>expand f:\amd64\sound54.wa_ sound54.wav<br>expand f:\amd64\sound55.wa_ sound55.wav<br>expand f:\amd64\sound560.wa_ sound560.wav<br>expand f:\amd64\sound563.wa_ sound563.wav<br>expand f:\amd64\sound57.wa_ sound57.wav<br>expand f:\amd64\sound58.wa_ sound58.wav<br>expand f:\amd64\sound6.wa_ sound6.wav<br>expand f:\amd64\sound65.wa_ sound65.wav<br>expand f:\amd64\sound68.wa_ sound68.wav<br>expand f:\amd64\sound7.wa_ sound7.wav<br>expand f:\amd64\sound713.wa_ sound713.wav<br>expand f:\amd64\sound735.wa_ sound735.wav<br>expand f:\amd64\sound8.wa_ sound8.wav<br>expand f:\amd64\sound827.wa_ sound827.wav<br>expand f:\amd64\sound9.wa_ sound9.wav<br>expand f:\amd64\sound999.wa_ sound999.wav<br>expand f:\amd64\table.bm_ table.bmp<br>copy f:\amd64\WAVEMIX.inf WAVEMIX.INF</code></pre>



<p class="wp-block-paragraph">Naturally you&#8217;ll want to substitute F:\ with whatever drive letter your CD-ROM/ISO file is mounted on.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="602" height="463" src="https://virtuallyfun.com/wp-content/uploads/2021/09/pinball-from-XP-x64-SP2.png" alt="" class="wp-image-11321" srcset="https://virtuallyfun.com/wp-content/uploads/2021/09/pinball-from-XP-x64-SP2.png 602w, https://virtuallyfun.com/wp-content/uploads/2021/09/pinball-from-XP-x64-SP2-300x231.png 300w, https://virtuallyfun.com/wp-content/uploads/2021/09/pinball-from-XP-x64-SP2-390x300.png 390w" sizes="auto, (max-width: 602px) 100vw, 602px" /></figure>
</div>


<p class="wp-block-paragraph">And thanks to a long needed feature in Windows 10 you can verify that yes indeed it is a 64bit version.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="144" src="https://virtuallyfun.com/wp-content/uploads/2021/09/Pinball-in-new-Task-Manager-1024x144.png" alt="" class="wp-image-11322" srcset="https://virtuallyfun.com/wp-content/uploads/2021/09/Pinball-in-new-Task-Manager-1024x144.png 1024w, https://virtuallyfun.com/wp-content/uploads/2021/09/Pinball-in-new-Task-Manager-300x42.png 300w, https://virtuallyfun.com/wp-content/uploads/2021/09/Pinball-in-new-Task-Manager-768x108.png 768w, https://virtuallyfun.com/wp-content/uploads/2021/09/Pinball-in-new-Task-Manager-500x70.png 500w, https://virtuallyfun.com/wp-content/uploads/2021/09/Pinball-in-new-Task-Manager.png 1031w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Or skip the pain, and download the <a rel="noreferrer noopener" href="https://archive.org/details/pinball-3790-1069.7z" target="_blank">first currently available AMD64 version here: pinball-3790-1069.7z</a></p>



<p class="wp-block-paragraph">Isn&#8217;t that awesome?!  Obviously ARM64 users are left out in the dark, as far as I know there was no ARM64 versions of Windows XP.  As a matter of fact, was there any public versions of Windows XP for ARM?  Naturally the Surface RT shipped with 8.0</p>



<p class="wp-block-paragraph">Anyways at long last we can have our 64bit pinball despite the weird bugs, and how the plunger is mostly hidden no doubt due to yet more weird floating point/integer size inconsistencies </p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2021/09/13/amd64-pinball-extravaganza/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
