<?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>x64 &#8211; Virtually Fun</title>
	<atom:link href="https://virtuallyfun.com/category/x64/feed/" rel="self" type="application/rss+xml" />
	<link>https://virtuallyfun.com</link>
	<description>Fun with Virtualization</description>
	<lastBuildDate>Fri, 12 Sep 2025 05:09:43 +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>relax: Segmentation fault</title>
		<link>https://virtuallyfun.com/2024/06/15/relax-segmentation-fault/</link>
					<comments>https://virtuallyfun.com/2024/06/15/relax-segmentation-fault/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sat, 15 Jun 2024 17:10:10 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[x64]]></category>
		<category><![CDATA[x86_64]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=14552</guid>

					<description><![CDATA[Wasting time doing more &#8220;research&#8221; on old GCC, and thanks to suggestions I thought that in addition to the old 1.x stuff, but I should include my old favorite 2.5.8, and the stalled 2.7.2.3, and the EGCS Pentium improved GCC &#8230; <a href="https://virtuallyfun.com/2024/06/15/relax-segmentation-fault/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wasting time doing more &#8220;research&#8221; on old GCC, and thanks to suggestions I thought that in addition to the old 1.x stuff, but I should include my old favorite 2.5.8, and the stalled 2.7.2.3, and the EGCS Pentium improved GCC fork.  I figured re-treading on old ground with the xMach/OSKit build on x86_64 should be safe/quick &amp; easy. </p>



<p class="wp-block-paragraph">My cross chain fails when trying to build libgcc.a  How annoying but I already have one, so I bypass it, and GCC then tries to build the crt (c runtime library startup code) and that fails too!</p>



<pre class="wp-block-code"><code>../binutils-990818-bulid/gas/as-new crtstuff.S -o crtstuff.o
Segmentation fault</code></pre>



<p class="wp-block-paragraph">I&#8217;m using GCC 12.2.0 on Debian 12.  Ok maybe I&#8217;ve finally hit drift, so let me try some other binutils.  binutils-2.10.1, binutils-2.14.  I had originally been lying saying I&#8217;m a Dec Alpha running either OSF or Linux as it matches the size &amp; endian alignment, but no dice.  I found out about the &#8216;linux32&#8217; command that&#8217;ll fake it&#8217;s environment as an i686 processor to fake out a lot of builds.  But the same result over and over.  So, I break down and fire up GDB.</p>



<pre class="wp-block-code"><code>(gdb) r
Starting program: /root/src/xmach/binutils-2.14-bulid/gas/as-new crtstuff.S -o crtstuff.o
&#91;Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x0000555555592ef0 in md_estimate_size_before_relax (fragP=fragP@entry=0x555555668fa8, segment=segment@entry=0x555555668730) at ../../binutils-2.14/gas/config/tc-i386.c:4441
4441      return md_relax_table&#91;fragP->fr_subtype]->rlx_length;
(gdb) bt
#0  0x0000555555592ef0 in md_estimate_size_before_relax (fragP=fragP@entry=0x555555668fa8, segment=segment@entry=0x555555668730) at ../../binutils-2.14/gas/config/tc-i386.c:4441
#1  0x000055555558bce2 in relax_segment (segment_frag_root=0x555555668f30, segment=segment@entry=0x555555668730) at ../../binutils-2.14/gas/write.c:2266
#2  0x000055555558c39c in relax_seg (abfd=&lt;optimized out>, sec=0x555555668730, xxx=0x7fffffffe960) at ../../binutils-2.14/gas/write.c:659
#3  0x000055555559b01f in bfd_map_over_sections (abfd=0x55555565e030, operation=operation@entry=0x55555558c370 &lt;relax_seg>, user_storage=user_storage@entry=0x7fffffffe960)
    at ../../binutils-2.14/bfd/section.c:1101
#4  0x000055555558b501 in write_object_file () at ../../binutils-2.14/gas/write.c:1565
#5  0x000055555556e288 in main (argc=2, argv=0x5555556302d0) at ../../binutils-2.14/gas/as.c:924
(gdb) quit</code></pre>



<p class="wp-block-paragraph">The whole issue revolves around md_relax_table!  I&#8217;d seen a &#8216;fix&#8217; <a href="https://mudongliang.github.io/2017/07/01/binutils-215-error-array-type-has-incomplete-element-type.html" target="_blank" rel="noreferrer noopener">where you add in a pointer, and it&#8217;ll satisfy GCC</a> and sure it&#8217;ll compile.  Years ago, I had #ifdef&#8217;d it out until when I needed it, but the real answer is to embrace 1989 and set the compiler flags to &#8220;-std=gnu89&#8221;</p>



<p class="wp-block-paragraph">I can&#8217;t help but think at some point soon 1989 will be removed as it&#8217;s only wierdos like me building this stuff.</p>



<p class="wp-block-paragraph">Just as the old Unix error status of sys_nerr has been removed for &#8216;reasons&#8217; so may as well amputate all the old code:</p>



<pre class="wp-block-code"><code>-  if (e > 0 &amp;&amp; e &lt; sys_nerr)
-    return sys_errlist&#91;e];</code></pre>



<p class="wp-block-paragraph">Nothing much you can do about it, Linux isn&#8217;t trying to be Unix anymore.</p>



<h2 class="wp-block-heading">64/32</h2>



<p class="wp-block-paragraph">In the end it doesn&#8217;t seem to matter.  OSkit fails to build:</p>



<pre class="wp-block-code"><code>i586-linux-gcc -c -o base_multiboot_init_cmdline.o -MD -DHAVE_CONFIG_H  -DOSKIT_X86 -DOSKIT_X86_PC -DINDIRECT_OSENV=1 -I. -I../../oskit-20020317/kern/x86 -I../../oskit-20020317/kern/x86/pc -I../../oskit-20020317/kern/x86/dos -I../../oskit-20020317/kern  -I- -I../../oskit-20020317/oskit/c -I.. -I../../oskit-20020317 -nostdinc -Wall  -O2 -g  ../../oskit-20020317/kern/x86/pc/base_multiboot_init_cmdline.c
i586-linux-gcc: Internal compiler error: program cc1 got fatal signal 11
make&#91;1]: *** &#91;../../oskit-20020317/GNUmakerules:124: base_multiboot_init_cmdline.o] Error 1</code></pre>



<p class="wp-block-paragraph">And surprisingly mig does build, but Mach does not.</p>



<pre class="wp-block-code"><code>i586-linux-gcc -c   -MD -DLINUX_DEV=1 -DHAVE_VPRINTF=1 -DHAVE_STRERROR=1  -Di386 -DMACH -DCMU -I- -I. -I../../../kernel/libmach/standalone -I../../../kernel/libmach/c -I../../../kernel/libmach -I/root/src/xmach/xMach/object-kern/libmach -I/root/src/xmach/xMach/object-kern/../kernel/generic/libmach/standalone -I/root/src/xmach/xMach/object-kern/../kernel/generic/libmach/c -I/root/src/xmach/xMach/object-kern/../kernel/generic/libmach -I../../../kernel/include/mach/sa -I../../../kernel/include -I/root/src/xmach/xMach/object-kern/../kernel/generic/include -I/root/src/xmach/xMach/object-kern/include -I/root/src/xmach/xMach/object-kern/../kernel/generic/include/mach/sa -nostdinc  -O1 /root/src/xmach/xMach/object-kern/libmach/bootstrap_server.c
/root/src/xmach/xMach/object-kern/libmach/bootstrap_server.c: In function `_Xbootstrap_privileged_ports':
/root/src/xmach/xMach/object-kern/libmach/bootstrap_server.c:90: `null' undeclared (first use this function)
/root/src/xmach/xMach/object-kern/libmach/bootstrap_server.c:90: (Each undeclared identifier is reported only once
/root/src/xmach/xMach/object-kern/libmach/bootstrap_server.c:90: for each function it appears in.)</code></pre>



<p class="wp-block-paragraph">Needless to say, this is why I don&#8217;t use OS X anymore.  Not having a 32bit userland basically killed it for me.</p>



<p class="wp-block-paragraph">I guess the next step is to go ahead with qemu-user mode wrappers to fake it.</p>



<p class="wp-block-paragraph">Sorry if you were hoping for some great conclusion. </p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2024/06/15/relax-segmentation-fault/feed/</wfw:commentRss>
			<slash:comments>0</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 fetchpriority="high" 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="(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 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="(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 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="(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>Fun with Nano Server</title>
		<link>https://virtuallyfun.com/2021/10/17/fun-with-nano-server/</link>
					<comments>https://virtuallyfun.com/2021/10/17/fun-with-nano-server/#comments</comments>
		
		<dc:creator><![CDATA[tenox]]></dc:creator>
		<pubDate>Sun, 17 Oct 2021 09:35:02 +0000</pubDate>
				<category><![CDATA[guest post]]></category>
		<category><![CDATA[microsoft windows]]></category>
		<category><![CDATA[x64]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=11434</guid>

					<description><![CDATA[(This is a guest post by Antoni Sawicki aka Tenox) While everybody is busy buzzing about Windows 11, I wanted to commemorate the finest operating system ever made by Microsoft &#8211; Nano Server. For most of people Nano Server was &#8230; <a href="https://virtuallyfun.com/2021/10/17/fun-with-nano-server/">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">While everybody is busy buzzing about Windows 11, I wanted to commemorate the finest operating system ever made by Microsoft &#8211; <strong>Nano Server</strong>.</p>



<p class="wp-block-paragraph">For most of people Nano Server was esoteric, distant and unapproachable. It had a rather high entry barrier, requiring you to build it on a <em>Windows Server 2016</em> host using PowerShell magic spells. You couldn&#8217;t just simply download and run it. Even if you managed to get it running, there wasn&#8217;t anything you could actually do with it for fun. People didn&#8217;t bother to even check it out. My goal is to demystify this a bit, lower the entry bar and made it easy for people to hack it.</p>



<h2 class="wp-block-heading">Background info (you can skip it)</h2>



<p class="wp-block-paragraph">Nano Server was an interesting attempt at creating a datacenter grade OS that&#8217;s not managed via local GUI, keyboard and mouse, but rather full automation, remote tooling and code. It went one step further than <em>Server Core</em> or <em>Windows PE</em> by completely removing GUI components and local shell. Hence it&#8217;s not actually called &#8220;Windows&#8221; or &#8220;Windows Nano&#8221; but rather simply &#8220;Nano Server&#8221;. Rumor has it, it started as <a href="https://en.wikipedia.org/wiki/MinWin">MinWin</a>. The OS has a rudimentary text mode console with functionality similar of VMware ESXi console. However Nano was much more than a bare metal hypervisor. It was a fully fledged operating system. Unlike ESXi you can develop and install services/apps for it and hypervisor wasn&#8217;t even it&#8217;s default role.</p>



<p class="wp-block-paragraph">Ever since I first saw <a href="https://channel9.msdn.com/Series/Nano-Server-Team">a demo on Microsoft Ignite</a> (previously known as TechEd) I wanted to run <a href="https://github.com/tenox7/aclock">aclock</a> on the text console. Much like the <a href="https://virtuallyfun.com/wordpress/2012/11/04/aclock-bsod/">WinNT BSOD edition</a>. This article started around my efforts to run (or port if needed) aclock to this platform. At the time of writing, the technology has been dead for several years now. However all the artifacts and documentation are still available on Microsoft&#8217;s website. Probably not for long, so a good moment to do it now, before everything gets deleted in to oblivion.</p>



<h2 class="wp-block-heading">How to quickly deploy Nano Server and run command line apps on the console</h2>



<p class="wp-block-paragraph"><strong>The hard way:</strong> you need to <a href="https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2016">download Windows 2016 Server (eval) </a>and run a PowerShell command to produce a bootable VHD file.</p>



<p class="wp-block-paragraph">Microsoft provides (soon to be deleted) <a href="https://docs.microsoft.com/en-us/windows-server/get-started/nano-server-quick-start">Nano Server Quick Start</a>. However the steps are trivial so you can totally skip that and just do this:</p>



<ul class="wp-block-list">
<li>Launch PowerShell terminal window on the WS2016 host.</li>



<li>Run: <code>Import-Module D:\NanoServer\NanoServerImageGenerator -Verbose</code><br>(D:\ drive being where Windows Server CDROM is mounted)</li>



<li>Run: <code>New-NanoServerImage -DeploymentType Guest -Edition Standard -MediaPath d:\ -BasePath c:\nano -TargetPath c:\nano.vhdx -ComputerName nano -Development</code><br>(c:\nano folder and c:\nano.vhdx image will be created for you)</li>
</ul>



<p class="wp-block-paragraph">Done! This will build a <strong>.vhdx</strong> image that can be run under <strong>Hyper-V as &#8220;Gen-2&#8221; VM</strong>. For <strong>Gen-1</strong> or to run it on any other hypervisor change <strong>.vhdx</strong> to <strong>.vhd</strong> in <code>-TargetPath</code> while running the PowerShell command. </p>



<p class="wp-block-paragraph"><strong>The easy way</strong>: you can just download a pre-built VM image from <a href="http://tenox.pdp-11.ru/os/nanoserver/" data-type="URL">here</a>. There are VHD for Hyper-v Gen-1 and VHDX for Hyper-v Gen-2 and OVA for everything else. There also is <a href="http://tenox.pdp-11.ru/os/nanoserver/nano.vmdk.lz">VMDK</a>.</p>



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



<p class="wp-block-paragraph">Once you boot it up you will be greeted with a PowerShell prompt. Just like that! You can type <code>cmd</code> to launch the good old <em>cmd.exe</em> shell. MS-DOS 2016?</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="870" src="https://virtuallyfun.com/wp-content/uploads/2021/10/nano3-1024x870.png" alt="" class="wp-image-11436" srcset="https://virtuallyfun.com/wp-content/uploads/2021/10/nano3-1024x870.png 1024w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano3-300x255.png 300w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano3-768x653.png 768w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano3-353x300.png 353w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano3.png 1026w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"><em>Keep in mind, this is a developer mode (see -Development flag). Normally you would be greeted with a login prompt and a boring menu that allows to change some networking settings and not much beyond that. In production mode you need to resort to <a href="https://docs.microsoft.com/en-us/archive/blogs/nanoserver/how-to-display-ipconfig-on-nano-server-every-time-it-boots">hacks</a> (or <a href="https://docs.microsoft.com/en-us/windows-server/get-started/deploy-nano-server#running-custom-powershell-scripts-as-part-of-image-creation">this</a>) to get stuff running, fortunately nothing like that needed here.</em></p>



<h2 class="wp-block-heading">So what can you run on it?</h2>



<p class="wp-block-paragraph">Firstly in order to get some external utilities going, you can mount a SMB share using <code>net use</code> in cmd or <code>New-SMBMapping</code> in PS world. Nano being a server and all, you can also share out a folder via <code>net share</code> or use <code>C$</code> (you may need to create a user by using either <code>net user /add</code> in cmd or <code>New-LocalUser</code> in PS). Alternatively you can install <a href="https://www.powershellgallery.com/packages/Posh-SSH/">Posh-SSH </a>and use SCP to transfer files. If you don&#8217;t have working network you can just shut it down, mount the vhd image on the host and copy stuff in to the image then detach the VHD.</p>



<p class="wp-block-paragraph">Aclock worked on the first run, no issues, using standard <a href="https://github.com/tenox7/aclock/blob/master/binaries/x86/aclock-x64-win64.exe">win64 exe</a>:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="870" src="https://virtuallyfun.com/wp-content/uploads/2021/10/nano4-1024x870.png" alt="" class="wp-image-11437" srcset="https://virtuallyfun.com/wp-content/uploads/2021/10/nano4-1024x870.png 1024w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano4-300x255.png 300w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano4-768x653.png 768w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano4-353x300.png 353w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano4.png 1026w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">aclock running on Nano Server Console</figcaption></figure>



<p class="wp-block-paragraph">Wow! So looks like Nano console does have basic terminal controls. That opens quite a lot of possibilities. But can you run more complex apps? Text editors? Web browsers? GAMES?</p>



<p class="wp-block-paragraph">Well, yes&#8230;, but likely not, but it really depends &#8211; on dependencies (read: DLLs).</p>



<p class="wp-block-paragraph">From <a href="https://virtuallyfun.com/wordpress/2018/02/15/wanted-console-text-editor-for-windows/">all the ed</a><a href="https://virtuallyfun.com/wordpress/2018/02/15/wanted-console-text-editor-for-windows/" data-type="post" data-id="8120">itors</a> I tried <a href="https://github.com/tenox7/ntutils/tree/master/xvi">XVI</a> is probably the best:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="870" src="https://virtuallyfun.com/wp-content/uploads/2021/10/nano-xvi-1024x870.png" alt="" class="wp-image-11438" srcset="https://virtuallyfun.com/wp-content/uploads/2021/10/nano-xvi-1024x870.png 1024w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-xvi-300x255.png 300w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-xvi-768x653.png 768w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-xvi-353x300.png 353w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-xvi.png 1026w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">XVI Editor Running on Nano Server Console</figcaption></figure>



<p class="wp-block-paragraph">Everything else has a variety of issues:</p>



<ul class="wp-block-list">
<li>The font is lacking line drawing characters. Some editors like YEdit allow to use ASCII drawing characters fortunately.</li>



<li>There is no reverse video. This manifests mostly in menus, etc. however it also applies to the cursor.</li>



<li>There is no cursor, or rather the cursor is an underscore and not transparent cell. Moving arrow left in the CLI doesn&#8217;t actually move the cursor it erases characters. There is no line editing.</li>



<li>Also related to reverse video, it appears Nano console has some weird issues with colors.</li>



<li>Missing DLLs. Nano Server not being a &#8220;Windows&#8221; OS is missing a lot of Windows DLLs and it has its own nano DLL hell. This has actually been acknowledged in <a href="https://en.wikipedia.org/wiki/MinWin#Background">MinWin</a>. As such a lot of apps will not launch due to dependencies.</li>
</ul>



<p class="wp-block-paragraph">For example <a href="http://www.malsmith.net/edit/">YEdit</a> works remarkably well except for the menus, which use reverse video:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="870" src="https://virtuallyfun.com/wp-content/uploads/2021/10/nano-yedit-1024x870.png" alt="" class="wp-image-11439" srcset="https://virtuallyfun.com/wp-content/uploads/2021/10/nano-yedit-1024x870.png 1024w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-yedit-300x255.png 300w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-yedit-768x653.png 768w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-yedit-353x300.png 353w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-yedit.png 1026w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">YEdit running on Nano Server Console</figcaption></figure>



<p class="wp-block-paragraph"><strong>Update:</strong> Malcolm has fixed it in latest version of <a href="http://www.malsmith.net/edit/" data-type="URL" data-id="http://www.malsmith.net/edit/">YEdit</a>! Thank you!</p>



<p class="wp-block-paragraph"><strong>Update</strong>: thanks to Ron Yorston you can also run <a href="https://frippery.org/busybox/">BusyBox</a> on Nano! All you need to do is get the <a href="https://frippery.org/files/busybox/busybox64.exe">64bit version</a> and before you run it set an environmental variable to disable ANSI emulation. In CMD <code>set BB_SKIP_ANSI_EMULATION=0</code> in PS <code>$env:BB_SKIP_ANSI_EMULATION=0</code>. Done!</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="870" src="https://virtuallyfun.com/wp-content/uploads/2021/10/nano-bb-1024x870.png" alt="" class="wp-image-11523" srcset="https://virtuallyfun.com/wp-content/uploads/2021/10/nano-bb-1024x870.png 1024w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-bb-300x255.png 300w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-bb-768x653.png 768w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-bb-353x300.png 353w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-bb.png 1026w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">BusyBox on Nano Server</figcaption></figure>



<p class="wp-block-paragraph">You even get ls colors and <code>vi</code> editor works flawlessly! Unix shell on Nano, thats awesome!</p>



<h2 class="wp-block-heading">So what about games?</h2>



<p class="wp-block-paragraph">Initially nothing worked as expected. Either due to line drawing, colors or previously mentioned DLL hell. There was one game that actually worked &#8211; <a href="https://github.com/CAKEbuilder/Snake">PowerShell adaptation of snake</a>:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="870" src="https://virtuallyfun.com/wp-content/uploads/2021/10/nano-snake-1024x870.png" alt="" class="wp-image-11440" srcset="https://virtuallyfun.com/wp-content/uploads/2021/10/nano-snake-1024x870.png 1024w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-snake-300x255.png 300w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-snake-768x653.png 768w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-snake-353x300.png 353w, https://virtuallyfun.com/wp-content/uploads/2021/10/nano-snake.png 1026w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">PowerShell Snake running on Nano Server Console</figcaption></figure>



<p class="wp-block-paragraph">But I wanted something better. I had high hopes for <a href="http://ascii-patrol.com/"><strong>ascii-patrol</strong></a>, which is pure text mode and they build it for win64. Unfortunately the game requires a bunch of multimedia / sound DLLs from Windows which are not present in Nano.</p>



<p class="wp-block-paragraph">Thankfully <strong>Neozeed</strong> has stepped in, took the <a rel="noreferrer noopener" href="https://github.com/msokalski/ascii-patrol" target="_blank">source code</a>, amputated all the multimedia stuff, borrowed the Unix clock code and <a rel="noreferrer noopener" href="https://gist.githubusercontent.com/ugovaretto/5875385/raw/795a6a6998fac0eb0f865b68b94541fc14103ea3/win-gettimeofday.c" target="_blank">gettimeofday</a>, and used an older Visual Studio to build it. But he managed to produce a fully working and playable version!!!! Truly amazing stuff!</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="870" src="https://virtuallyfun.com/wp-content/uploads/2021/10/Ascii-Patrol-on-Nano-Server-Gen2-1024x870.png" alt="" class="wp-image-11467" srcset="https://virtuallyfun.com/wp-content/uploads/2021/10/Ascii-Patrol-on-Nano-Server-Gen2-1024x870.png 1024w, https://virtuallyfun.com/wp-content/uploads/2021/10/Ascii-Patrol-on-Nano-Server-Gen2-300x255.png 300w, https://virtuallyfun.com/wp-content/uploads/2021/10/Ascii-Patrol-on-Nano-Server-Gen2-768x653.png 768w, https://virtuallyfun.com/wp-content/uploads/2021/10/Ascii-Patrol-on-Nano-Server-Gen2-353x300.png 353w, https://virtuallyfun.com/wp-content/uploads/2021/10/Ascii-Patrol-on-Nano-Server-Gen2.png 1026w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">ASCII Patrol Running on Nano Server Console</figcaption></figure>
</div>


<p class="wp-block-paragraph">The binary is available <a href="http://tenox.pdp-11.ru/os/nanoserver/apps/ascii-patrol.exe" data-type="URL" data-id="http://tenox.pdp-11.ru/os/nanoserver/apps/ascii-patrol.exe">here</a>. To play the game scroll down one screen to start a mission. If you enter profile customization simply press ESC to get out. Thanks again Neozeed!</p>



<p class="wp-block-paragraph">I&#8217;m hoping readers can find more text mode/ascii apps and games that will work on the console. Please comment and send links!</p>



<p class="wp-block-paragraph">In another dimension, having a working text editor, Yori shell, smb/scp, maybe with help of mingw64, sdk tools or borrowed compilers from Visual Studio, one could have a self hosted developer workstation with this. </p>



<p class="wp-block-paragraph">For now please just download the pre-build image, or make one yourself and run it in your favorite hypervisor and have some fun with it!</p>



<p class="wp-block-paragraph">With this, goodbye Nano Server! You will be always remembered. I know folks at Redmond tried really hard to make it such beautiful gem.</p>



<p class="wp-block-paragraph"><strong>Update: Running Nano Server on VMware ESXi</strong></p>



<p class="wp-block-paragraph">If you want to run Nano Server on VMware ESXi, you need to do following: extract drivers from VMware Tools using <code>setup64.exe /a</code> . You will need PVSCSI and VMXNET3. Then point <code>New-NanoServerImage ... -Drivers c:\path</code> to include them in the image. Use VHD instead of VHDX (Gen1) then finally convert the image like so <code><br>qemu-img convert -f vpc -O vmdk -o subformat=monolithicSparse nano.vhd nano.vmdk</code> and finally on ESXi host <code><br>vmkfstools -i nano.vmdk nanot.vmdk -d thin</code>. When creating new VM set it to Server 2016 but make firmware type BIOS as opposed to EFI. More details can be found <a href="https://virtualizationdojo.com/vmware/install-windows-nano-server-esxi/" data-type="link" data-id="https://virtualizationdojo.com/vmware/install-windows-nano-server-esxi/">here</a>. </p>



<p class="wp-block-paragraph">The VMDK file can also be downloaded <a href="http://tenox.pdp-11.ru/os/nanoserver/nano.vmdk.lz">here</a>.</p>



<p class="wp-block-paragraph"><strong>Update: TTY Sokoban for Nano!</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="827" src="https://virtuallyfun.com/wp-content/uploads/2021/10/nanosokoban-1024x827.png" alt="" class="wp-image-15431" srcset="https://virtuallyfun.com/wp-content/uploads/2021/10/nanosokoban-1024x827.png 1024w, https://virtuallyfun.com/wp-content/uploads/2021/10/nanosokoban-300x242.png 300w, https://virtuallyfun.com/wp-content/uploads/2021/10/nanosokoban-768x620.png 768w, https://virtuallyfun.com/wp-content/uploads/2021/10/nanosokoban-372x300.png 372w, https://virtuallyfun.com/wp-content/uploads/2021/10/nanosokoban.png 1043w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Download <a href="http://tenox.pdp-11.ru/os/nanoserver/apps/ttysokoban-nano.exe" data-type="link" data-id="http://tenox.pdp-11.ru/os/nanoserver/apps/ttysokoban-nano.exe">here</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2021/10/17/fun-with-nano-server/feed/</wfw:commentRss>
			<slash:comments>10</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>
		<item>
		<title>A mildly annoying 32bit adventure, also happy 30th PGP!</title>
		<link>https://virtuallyfun.com/2021/06/12/a-mildly-annoying-32bit-adventure-also-happy-30th-pgpg/</link>
					<comments>https://virtuallyfun.com/2021/06/12/a-mildly-annoying-32bit-adventure-also-happy-30th-pgpg/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sat, 12 Jun 2021 02:55:45 +0000</pubDate>
				<category><![CDATA[encryption]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[pgp]]></category>
		<category><![CDATA[x64]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=11140</guid>

					<description><![CDATA[It&#8217;s been 30 years since the initial launch of PGP! Hard to believe what a firestorm it ignited i the 1990&#8217;s and the real pity of how the crypto field is just as baffling and confusing to people today as &#8230; <a href="https://virtuallyfun.com/2021/06/12/a-mildly-annoying-32bit-adventure-also-happy-30th-pgpg/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">It&#8217;s been 30 years since the initial launch of PGP!  Hard to believe what a firestorm it ignited i the 1990&#8217;s and the real pity of how the crypto field is just as baffling and confusing to people today as it was back then.</p>



<p class="wp-block-paragraph">It&#8217;s crazy how crypto went from being an obtuse tool, to suddenly being in the hands of normal people with a public web of trust, and widely available source.  And of course it was that widely available source that led to the first real people of trying to geofence on the internet, and it was naturally impossible to contain, even in the era before VPN&#8217;s people were able to circumvent any and all <em>&#8220;protections&#8221;</em> and download away.  Strong cryptography went from being something considered &#8216;weapons grade&#8217; and thusly requiring a munitions license to produce and distribute to suddenly being available to the world at large.</p>



<p class="wp-block-paragraph"><a href="https://www.wired.com/1995/03/the-continuing-investigation-of-phil-zimmermann/">Investigations were launched</a>, agencies contacted, and in spite of it all people had signing parities to exchange public keys, and sign the trust building the web.  Try as some people may have demanded &#8216;back door access&#8217; or black box crypto chips, the cat was out of the bag, and all you needed was a C compiler and a zip file small enough to easily fit on a low density 5 1/4&#8243; diskette.  It is 1991 after all, and there is still a sizable amount of XT/AT class machines out there, along with the 68000 Amiga/Atari/Macintosh (upgraded QL&#8217;s? 128kb really isn&#8217;t enough).</p>



<p class="wp-block-paragraph">PGP 1.0 is from another era, originally written in the late 80&#8217;s cleaned up and released in 1991 where mass produced 64bit machines were still a bit off, and thusly PGP 1.0 really supports 16bit &amp; 32bit OS&#8217;s.  For the purpose of this &#8216;revival&#8217; I went with the Unix port, the aptly named <a rel="noreferrer noopener" href="https://vpsland.superglobalmegacorp.com/install/encryption/pgp/unix_pgp10.tar.gz" target="_blank">unix_pgp10.tar.gz</a>.  And from the MS-DOS version I extracted the test data to make sure it works in the file <a rel="noreferrer noopener" href="https://vpsland.superglobalmegacorp.com/install/encryption/pgp/pgp10-test-data.tar.gz" target="_blank">pgp10-test-data.tar.gz</a></p>



<pre class="wp-block-preformatted">$ file pgp
 pgp: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=cd9ecbf51fab24abbb7153a2cc04bb01bbf2ae91, not stripped
$ ./pgp testfile.ctx
 Pretty Good Privacy 1.0 - RSA public key cryptography for the masses.
 (c) Copyright 1990 Philip Zimmermann, Phil's Pretty Good Software.  5 Jun 91
 File is encrypted.  Secret key is required to read it.
 Key for user ID: Bond, James (007)
 288-bit key, Key ID A27A1F, created Sat Oct 19 23:56:24 3006391
 You need a pass phrase to unlock your RSA secret key.
 Enter pass phrase:</pre>



<p class="wp-block-paragraph">While it was simple enough to build, sadly on x64 WSL instance it doesn&#8217;t work.  There is no pass phrase for the test data.</p>



<p class="wp-block-paragraph">Normally I have one of usual two choices a) try to fix PGP to be 64bit friendly or b) run it under a 32bit environment.  Normally I would do b, but I went digging into some porting strategies for the a choice and ran into this totally underused tech <a rel="noreferrer noopener" href="https://sites.google.com/site/x32abi/" target="_blank">x32</a>.</p>



<p class="wp-block-paragraph">Long story short you keep your 32bit integers, you run like it&#8217;s a 32bit process but you are mapped into a 64bit address space.  Even better -static works!</p>



<p class="wp-block-paragraph">On Debian 10 the environment can be installed with the following:</p>



<pre class="wp-block-preformatted">apt-get install gcc-7 lib32gcc-7-dev libgcc-7-dev libx32gcc-7-dev gcc-7-multilib</pre>



<p class="wp-block-paragraph">Then to invoke it, use <span style="text-decoration: underline;"><em>gcc-7 -mx32</em></span> .  It&#8217;s that easy.</p>



<p class="wp-block-paragraph">WSLv1 vs WSLv2</p>



<pre class="wp-block-preformatted">$ ./pgp
 -bash: ./pgp: cannot execute binary file: Exec format error
$ file pgp
 pgp: ELF 32-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=2aa5f030603018ca1dc6c5c10aa979751b006aca, for GNU/Linux 3.4.0, not stripped</pre>



<p class="wp-block-paragraph">Notice it is now a 32-bit LSB executable, but also in the x86-64 address space!  However under the WSLv1 environment it won&#8217;t work.  Time to update to v2</p>



<pre class="wp-block-preformatted">   wsl --set-version Ubuntu-20.04 2
   Conversion in progress, this may take a few minutesâ€¦
   For information on key differences with WSL 2 please visit https://aka.ms/wsl2
   WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel </pre>



<p class="wp-block-paragraph">And now with the instance converted:</p>



<pre class="wp-block-preformatted">$ ./pgp
 Pretty Good Privacy 1.0 - RSA public key cryptography for the masses.
 (c) Copyright 1990 Philip Zimmermann, Phil's Pretty Good Software.  5 Jun 91
 For details on free licensing and distribution, see the PGP User's Guide.
 For other cryptography products and custom development services, contact:
 Philip Zimmermann, 3021 11th St, Boulder CO 80304 USA, phone (303)444-4541
 Usage summary:
 To encrypt a plaintext file with recipent's public key, type:
    pgp -e textfile her_userid      (produces textfile.ctx)
 To sign a plaintext file with your secret key, type:
    pgp -s textfile your_userid     (produces textfile.ctx)
 To sign a plaintext file with your secret key, and then encrypt it
    with recipent's public key, producing a .ctx file:
    pgp -es textfile her_userid your_userid
 To encrypt with conventional encryption only:  pgp -c textfile
 To decrypt or check a signature for a ciphertext (.ctx) file:
    pgp ciphertextfile [plaintextfile]
 To generate your own unique public/secret key pair, type:  pgp -k
 To add a public or secret key file's contents to your public
    or secret key ring:   pgp -a keyfile [keyring]
 To remove a key from your public key ring:     pgp -r userid [keyring]
 To view the contents of your public key ring:  pgp -v [userid] [keyring]
$</pre>



<p class="wp-block-paragraph">And we are in business!  Now we can run the example crypto test:</p>



<pre class="wp-block-preformatted">$ ./pgp testfile.ctx
 Pretty Good Privacy 1.0 - RSA public key cryptography for the masses.
 (c) Copyright 1990 Philip Zimmermann, Phil's Pretty Good Software.  5 Jun 91
 File is encrypted.  Secret key is required to read it.
 Key for user ID: Bond, James (007)
 286-bit key, Key ID A27A1F, created (null)
 Advisory warning: This RSA secret key is not protected by a passphrase.
 Just a moment-- .
 File has signature.  Public key is required to check signature. .
 Good signature from user "Smart, Maxwell (86)".
 Signature made Thu Jun  6 05:28:52 1991
 Plaintext filename: testfile</pre>



<p class="wp-block-paragraph">And there we are!</p>



<p class="wp-block-paragraph">PGP 1.0 suffers from 2 real defects of the era the first being the home brew bassomatic that is apparently full of all kinds of flaws, and the second lurking in <a rel="noreferrer noopener" href="https://unix.superglobalmegacorp.com/cgi-bin/cvsweb.cgi/pgp/src/rsalib.c?rev=1.1.1.1;cvsroot=pgp;only_with_tag=pgp10" target="_blank">rsalib.c</a></p>



<pre class="wp-block-preformatted"> The RSA public key cryptosystem is patented by the Massachusetts Institute of Technology (U.S. patent #4,405,829).  Public Key  Partners (PKP) holds the exclusive commercial license to sell and  sub-license the RSA public key cryptosystem.  The author of this  software implementation of the RSA algorithm is providing this  implementation for educational use only.  Licensing this algorithm  from PKP is the responsibility of you, the user, not Philip Zimmermann, the author of this implementation.  The author assumes no liability for any breach of patent law resulting from the unlicensed use of this software by the user. These routines implement all of the multiprecision arithmetic necessary for Rivest-Shamir-Adleman (RSA) public key cryptography.</pre>



<p class="wp-block-paragraph">And it ignited so much of a war about licensing the RSA cryptography base.  It wasn&#8217;t until 1992/1993 that the RSA released their own aptly named <a rel="noreferrer noopener" href="https://sourceforge.net/projects/rsaref/" target="_blank">rsaref</a> that at <a rel="noreferrer noopener" href="https://unix.superglobalmegacorp.com/cgi-bin/cvsweb.cgi/pgp/rsaref/README?rev=1.1.1.1;cvsroot=pgp" target="_blank">least clarified and addressed their licensing restrictions.</a>  As we found out later it wasn&#8217;t the DOJ shutting down encryption, nor wild acts of congress instead it was <a rel="noreferrer noopener" href="https://cs.stanford.edu/people/eroberts/cs201/projects/software-patents/rsa.html" target="_blank">US Patent 4,405,829</a> which finally expired in Sept 21, 2000, along with <a href="https://cr.yp.to/patents/us/4200770.html">US patent 4,200,770</a> Hellman Diffie Merkle, public-key cryptography which expired in September of 1997.  So in the end it was the lawyers who were to be feared, not the the US Government.</p>



<p class="wp-block-paragraph">Another source of annoyance was the public/private key files are stored in a binary format (hence the 16/32/64 issues I&#8217;m sure!).</p>



<pre class="wp-block-preformatted">C:\temp&gt;pgp -v jason.pub
 Pretty Good Privacy 1.0 - RSA public key cryptography for the masses.
 (c) Copyright 1990 Philip Zimmermann, Phil's Pretty Good Software.  5 Jun 91
 Key ring: 'jason.pub'
 Type bits/keyID   Date     User ID
 pub  990/F7CAD5 12-Jun-21  Jason Stevens
 1 key(s) examined.
 C:\temp&gt;type jason.pub
 Â°Ã¼Â½â•Ÿâ•“iÂºÂ½t<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2195.png" alt="↕" class="wp-smiley" style="height: 1em; max-height: 1em;" />HÃ¯â•œÃ†(â†‘ÂªÎ±&amp;Eâ˜¼lKL$*âŒ =â””Â¥â•’[â•«Ã¨s,â•”kÃ¥r~â–MFBvâ‰¥â‰¡â•«Eâ”´â•ŸTÃ¿â•‘ÂµÃ³&nbsp;â•¨6,<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2663.png" alt="♣" class="wp-smiley" style="height: 1em; max-height: 1em;" />â—„Ermoâ–¼Ã¦â–„;Â± Ã¹Ã®
 C:\temp&gt;</pre>



<p class="wp-block-paragraph">So naturally you have to use uuencode which led to MIME collisions and other fun stuff down the road. yay!</p>



<pre class="wp-block-code"><code>begin 666 jason.pub
MF9,`$!C$8`U*87-O;B!3=&amp;5V96YSW@/5RO&gt;TFV)_9@%49RW3NYGD&lt;8*H`3X1
MZ&gt;D'/F/D7$)OKD9&amp;K+&gt;A&lt;@4&lt;,$RV.+M?9VR;17)M;Q^1W#OQ()&gt;,#?B!J\?6
M::&gt;K=!)(B&#91;V2*!BFX"9%#VQ+3"0J]#W`!YW56]&gt;*&lt;RS):X9R?MY-1D)V\O#7
/1&lt;''5)BZYJ+_T#8L!0`1
`
end</code></pre>



<p class="wp-block-paragraph">Even though today we have widespread SSL, and all kinds of apps that encrypt by default, but Operation Trojan Shield shows that that an app is simply not enough, and you cannot trust anything.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Though Enigma had some cryptographic weaknesses, in practice it was German procedural flaws, operator mistakes, failure to systematically introduce changes in encipherment procedures, and Allied capture of key tables and hardware that, during the war, enabled Allied cryptologists to succeed and &#8220;turned the tide&#8221; in the Allies&#8217; favour.<sup><a href="https://en.wikipedia.org/wiki/Enigma_machine#cite_note-FOOTNOTEKahn1991-15">[15]</a><a href="https://en.wikipedia.org/wiki/Enigma_machine#cite_note-FOOTNOTEStripp1993-16">[16]</a></sup></p><cite>-Wikipedia</cite></blockquote>



<p class="wp-block-paragraph">And just like the spy movies good crypto is tedious, bulky and rarely used properly<strong>*</strong>.</p>



<p class="has-text-align-right wp-block-paragraph"><em>Yes please don&#8217;t seriously rely on pgp 1.0!</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2021/06/12/a-mildly-annoying-32bit-adventure-also-happy-30th-pgpg/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>So I was offered a MacPro 6.1 aka the trashcan.</title>
		<link>https://virtuallyfun.com/2020/04/18/so-i-was-offered-a-macpro-6-1-aka-the-trashcan/</link>
					<comments>https://virtuallyfun.com/2020/04/18/so-i-was-offered-a-macpro-6-1-aka-the-trashcan/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sat, 18 Apr 2020 17:47:12 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Wine]]></category>
		<category><![CDATA[x64]]></category>
		<category><![CDATA[x86_64]]></category>
		<category><![CDATA[Xeon]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10231</guid>

					<description><![CDATA[And well it&#8217;s a Mac. I did the Windows Key + R to boot into recovery mode and install some old version of OS X over the internet. Nice. I updated to Catalina and kind of forgot about the break &#8230; <a href="https://virtuallyfun.com/2020/04/18/so-i-was-offered-a-macpro-6-1-aka-the-trashcan/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">And well it&#8217;s a Mac.  I did the Windows Key + R to boot into recovery mode and install some old version of OS X over the internet.  Nice.</p>



<p class="wp-block-paragraph">I updated to Catalina and kind of forgot about the break with the &#8216;awesome world of home 32bit computing&#8217; as it&#8217;s all 64bit now.</p>



<p class="wp-block-paragraph">Needless to say none of my favourite stuff runs.</p>



<p class="wp-block-paragraph">I&#8217;ve been maintaining a subscription to Crossover for a while, as I really like to support the future of Wine.  I know a while back they too had the 64bit freakout, but they apparently found some shim to keep on running Win32 apps.  And sure enough I loaded up my old Fortran Power Station bottle and it actually run!</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2020/04/Screenshot-2020-04-18-at-11.23.38-PM-1-1024x598.png"><img loading="lazy" decoding="async" width="1024" height="598" src="https://virtuallyfun.com/wp-content/uploads/2020/04/Screenshot-2020-04-18-at-11.23.38-PM-1-1024x598.png" alt="" class="wp-image-10233" srcset="https://virtuallyfun.com/wp-content/uploads/2020/04/Screenshot-2020-04-18-at-11.23.38-PM-1-1024x598.png 1024w, https://virtuallyfun.com/wp-content/uploads/2020/04/Screenshot-2020-04-18-at-11.23.38-PM-1-300x175.png 300w, https://virtuallyfun.com/wp-content/uploads/2020/04/Screenshot-2020-04-18-at-11.23.38-PM-1-768x449.png 768w, https://virtuallyfun.com/wp-content/uploads/2020/04/Screenshot-2020-04-18-at-11.23.38-PM-1-500x292.png 500w, https://virtuallyfun.com/wp-content/uploads/2020/04/Screenshot-2020-04-18-at-11.23.38-PM-1.png 1383w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption>Fortran on OS X!</figcaption></figure></div>



<p class="wp-block-paragraph">Sadly SQL Server 4.21 seems to lock up, but it has been doing that under Wine when I last gave up on OS X a few years back.  I tried some Win16 games (SimCity) and it bombed out.  Looks like there is no support for Win16 apps.  Pitty.</p>



<p class="wp-block-paragraph">Steam is 64bit now, however none of Valve&#8217;s hits that have 64bit versions for Windows have made the 64bit leap for OS X.  I have a feeling it&#8217;ll never happen as OS X users are so few and far between they are literally outnumbered by Linux users.</p>



<p class="wp-block-paragraph">I did fire-up <a href="https://store.steampowered.com/app/264710/Subnautica/">Subnautica</a>, and of course the PC with the RTX 2070 blows this thing away.  Although it&#8217;s hardly a fare competition.  But who wants to play fare?</p>



<p class="wp-block-paragraph">It&#8217;s far too early to really tell, and who knows I might just wipe this thing and install Windows.  In my opinion OS X 10.6 was the greatest release ever bridging the divide from PowerPC to x86, just as 10.2.7 on the G5 was the greatest PowerPC version to bridge that 68000 divide.  I still have that G5, but now my 2006 machine is dead.  I&#8217;ve seen them in the used stores for around $100 USD.  Although I don&#8217;t know if I can be bothered as they are incredibly heavy.  And I&#8217;m pretty sure 10.6 will run on VMWare thanks to hackintosh efforts.</p>



<p class="wp-block-paragraph">Also I should add as a personal note, my 2006 MacPro 1,1 died.  I let someone else use it, and she broke it in one day.  I&#8217;ve had it for years, several moves in the USA, then to Canada, then to Hong Kong.  It died with only one day on the job.  Sad.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2020/04/18/so-i-was-offered-a-macpro-6-1-aka-the-trashcan/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>Apple kills 32bit software</title>
		<link>https://virtuallyfun.com/2019/10/08/apple-kills-32bit-software/</link>
					<comments>https://virtuallyfun.com/2019/10/08/apple-kills-32bit-software/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 08 Oct 2019 00:06:25 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[x64]]></category>
		<category><![CDATA[x86_64]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=9801</guid>

					<description><![CDATA[I know it&#8217;s been a long time coming but here we are. Such a shame compatibility isn&#8217;t a priority. No more crazy stuff like running GCC 1.3 on OS X. I got this email yesterday : If you use CrossOver &#8230; <a href="https://virtuallyfun.com/2019/10/08/apple-kills-32bit-software/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I know it&#8217;s been a long time coming but here we are.  Such a shame compatibility isn&#8217;t a priority. No more crazy stuff like running GCC 1.3 on OS X.</p>



<p class="wp-block-paragraph">I got this email yesterday :</p>



<blockquote><i>If you use CrossOver for macOS, this information is VERY IMPORTANT for you.
<p>
Earlier today, Apple released the new macOS Catalina. Catalina does not support 32-bit applications. Currently, CrossOver still uses pieces of 32-bit code for every function and will not launch or install any Windows apps in Catalina. If CrossOver is critical&nbsp;to you macOS experience, we ask that you wait on upgrading to Catalina until we release a Catalina compatible version.
<p>
At this time, we anticipate that an alpha version will be available sometime in the next 30 days. We will continue to update you as development progresses.
</i></blockquote>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2019/10/08/apple-kills-32bit-software/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Huananzhi X79</title>
		<link>https://virtuallyfun.com/2019/02/06/huananzhi-x79/</link>
					<comments>https://virtuallyfun.com/2019/02/06/huananzhi-x79/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Wed, 06 Feb 2019 17:51:31 +0000</pubDate>
				<category><![CDATA[China]]></category>
		<category><![CDATA[whatever]]></category>
		<category><![CDATA[Windows 10]]></category>
		<category><![CDATA[x64]]></category>
		<category><![CDATA[x86_64]]></category>
		<category><![CDATA[Xeon]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=9199</guid>

					<description><![CDATA[So I picked up this board on AliExpress for about $200 USD. Natrually the x79 chipset is NOT a dual CPU chipset, so yeah it&#8217;s one of those &#8216;not exactly 100% legit&#8217; Chinese motherboards. One thing about Chinese companies that &#8230; <a href="https://virtuallyfun.com/2019/02/06/huananzhi-x79/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_165013-1024x768.jpg" alt="" class="wp-image-9200" srcset="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_165013.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_165013-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_165013-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">So I picked up this board on AliExpress for about $200 USD.  Natrually the x79 chipset is NOT a dual CPU chipset, so yeah it&#8217;s one of those &#8216;not exactly 100% legit&#8217; Chinese motherboards.</p>



<p class="wp-block-paragraph">One thing about Chinese companies that many don&#8217;t sell directly to consumers, instead they sell on Tao Bao, Alibaba, or to foreigners, AliExpress.  The company&#8217;s site is <a href="http://www.huananzhi.com">http://www.huananzhi.com</a>, as they had written on the box.  Yes you need the www. portion of the name, as again many things are&#8230; well dated on the Chinese internet.</p>



<p class="wp-block-paragraph">The product page is currently <a href="http://www.huananzhi.com/html/1/149/150/256.html">http://www.huananzhi.com/html/1/149/150/256.html</a>, if anyone cares.  It lists the technical specs as:</p>



<ul class="wp-block-list"><li>Support for Xeon E5 series processors</li><li>High-speed DDR3 four-channel memory slot: support 1333/1600/1866MHz, maximum capacity 128G memory slot</li><li>Desktop general purpose memory</li><li>X79 dual motherboard supports 5.1 channel ALC887 chip</li><li>8-layer PCB backplane, 7+7 phase power supply</li><li>High-speed USB3.0, SATA3.0 interface transmission speed is increased</li><li>PCI-E expansion slot*4</li><li>RJ45 Gigabit LAN interface</li><li>North Korean heat sink with HUANAN logo</li></ul>



<p class="wp-block-paragraph">Yes, I don&#8217;t get the whole Korean heat sink thing either.  Anyways I thought it&#8217;d be fun to try so I ordered the thing.  It took 3 days to get to my office in China, and an additional week to get from China to Hong Kong.  I hear these things can take  upwards of a month to arrive in North America.</p>



<p class="wp-block-paragraph">Also worth noting is that they will not ship with a CMOS battery, so you need to supply your own CR-2032 battery, otherwise the board will not operate correctly.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_165108-1024x768.jpg" alt="" class="wp-image-9206" srcset="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_165108.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_165108-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_165108-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">The contents of the box are VERY minimal, but they did include 2 SATA cables, some CPU thermal paste, a very bare and &#8230; well not very good manual, a CD which I haven&#8217;t even tried to read, along with an IO shield.</p>



<p class="wp-block-paragraph">Oh and for visitors of the future, <a href="https://virtuallyfun.com/Huananzhi%20x79%20dual%20Xeon%20motherboard%20manual.pdf">here is a poorly scanned copy of that manual.  It really is 2 pages.</a>  For what it&#8217;s worth it makes as much sense in English as it does in Chinese.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_165252-1024x768.jpg" alt="" class="wp-image-9207" srcset="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_165252.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_165252-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_165252-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">I decided to pair this with a pair of <a href="https://ark.intel.com/products/75789/Intel-Xeon-Processor-E5-2620-v2-15M-Cache-2-10-GHz-">E5-2620 v2</a>&#8216;s that I got for $40 USD shipped, as I didn&#8217;t want to initially spend a lot of money in case all of this just exploded or something.  These were the &#8216;widest&#8217; and cheapest processors I could find, I wanted a v2 E5 as they are faster then the first generation.  </p>



<p class="wp-block-paragraph">Also worth noting is that the board is only capable of driving v1 &amp; v2 E5&#8217;s.  And they need to be the E5-2 type, which support operating in pairs, unlike the E5-1 set.  I have no idea if the E5-4&#8217;s aka 4-way part would work in a pair.  Although it may be an interesting experiment to try.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_182420-1024x768.jpg" alt="" class="wp-image-9208" srcset="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_182420.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_182420-300x225.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_182420-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">The board apparently doesn&#8217;t support overclocking or anything that fancy.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="403" height="402" src="https://virtuallyfun.com/wp-content/uploads/2019/02/CPU-Z-HUANANZHI-x79-dual-board.png" alt="" class="wp-image-9201" srcset="https://virtuallyfun.com/wp-content/uploads/2019/02/CPU-Z-HUANANZHI-x79-dual-board.png 403w, https://virtuallyfun.com/wp-content/uploads/2019/02/CPU-Z-HUANANZHI-x79-dual-board-150x150.png 150w, https://virtuallyfun.com/wp-content/uploads/2019/02/CPU-Z-HUANANZHI-x79-dual-board-300x300.png 300w" sizes="auto, (max-width: 403px) 100vw, 403px" /></figure>



<p class="wp-block-paragraph">Although it reports itself as an x79 based motherboard, it is in reality an <a href="https://youtu.be/5ISeiuq84ws?t=269">Intel C602</a>, based chipset.  I don&#8217;t know if they are harvesting them off of recycled servers, or if they have located a giant cache of repair parts that have been pushed beyond 5 year warranties, so they are prime candidates for being re-purposed as end user motherboards.  Nice things about these boards vs standard server boards is the inclusion of a Realtek HD Audio chip, VIA USB 3.0 controller, and even the nice spacing out of the slots so you could really use all the slots.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="721" height="768" src="https://virtuallyfun.com/wp-content/uploads/2019/02/6-into-8.jpg" alt="" class="wp-image-9213" srcset="https://virtuallyfun.com/wp-content/uploads/2019/02/6-into-8.jpg 721w, https://virtuallyfun.com/wp-content/uploads/2019/02/6-into-8-282x300.jpg 282w" sizes="auto, (max-width: 721px) 100vw, 721px" /></figure>



<p class="wp-block-paragraph">Since this is a dual processor board you really want a PSU with dual 8 pin power connectors, however as mentioned in the poorly translated manual, you can take a PCI-E 6 pin adapter, and place it into the 8 pin socket, just position it backwards so that the 12v+ pins are facing inwards.</p>



<p class="wp-block-paragraph">It may look strange (well more so as I&#8217;m using an extension cable that is sadly more focused on aesthetics than function, but heh it was cheap), but rest assured it works!</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="576" height="312" src="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_165350.jpg" alt="" class="wp-image-9209" srcset="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_165350.jpg 576w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190131_165350-300x163.jpg 300w" sizes="auto, (max-width: 576px) 100vw, 576px" /></figure>



<p class="wp-block-paragraph">Another thing to keep in mind is that since this board uses a server chipset, not a consumer one, just as it is using server processors, you will need server grade memory.  In this case it&#8217;s REG ECC DDR3 based memory.  I went with 1833Mhz parts, which are the fastest DDR3 parts they made.  Although the processors I chose have a maximum frequency support of 1600Mhz, but the memory works fine when underclocked.</p>



<p class="wp-block-paragraph">Another gotcha is the CPU fans.  These need to fit the Intel Xeon 2011, but have support for the 2011 motherbards.  Which unlike the consumer versions don&#8217;t have a separate plate to bolt to the underside, rather they screw in all from the top.  I had purchased a pair of cheap heatsinks that were about the right size, but didn&#8217;t include any of the mounting hardware for a 2011 board.  I picked up these GELID Phantom Black CPU&#8217;s for about $80 for the pair.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="506" height="517" src="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135820.jpg" alt="" class="wp-image-9202" srcset="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135820.jpg 506w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135820-294x300.jpg 294w" sizes="auto, (max-width: 506px) 100vw, 506px" /></figure>



<p class="wp-block-paragraph">They are quite big, and include a pair of fans for each processor which will make the end build look a little crazy.</p>



<p class="wp-block-paragraph">I didn&#8217;t want to spend a lot, and went with the cheapest PSU I could find to output more than 450 watts.  Although it did turn on and run with the lower PSU the machine did shut off overnight for no apparent reason.  I&#8217;ve been okay with the larger and cheap Antec NX 650 PSU.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="845" height="515" src="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135844.jpg" alt="" class="wp-image-9203" srcset="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135844.jpg 845w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135844-300x183.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135844-768x468.jpg 768w" sizes="auto, (max-width: 845px) 100vw, 845px" /></figure>



<p class="wp-block-paragraph">Although, this is the older style &#8216;bundle o cables&#8217; type of PSU which I&#8217;m not such a fan of.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="407" height="638" src="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135851.jpg" alt="" class="wp-image-9204" srcset="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135851.jpg 407w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135851-191x300.jpg 191w" sizes="auto, (max-width: 407px) 100vw, 407px" /></figure>



<p class="wp-block-paragraph">If I had charged up a cordless screwdriver this would have taken a few minutes, but screwing in the heatsinks was a chore, and they really do dominate the boards real estate.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="552" height="595" src="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135746.jpg" alt="" class="wp-image-9205" srcset="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135746.jpg 552w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135746-278x300.jpg 278w" sizes="auto, (max-width: 552px) 100vw, 552px" /><figcaption>Almost completed build</figcaption></figure>



<p class="wp-block-paragraph">I thought I had a case, but it turns out that it was for normal ATX sized boards, and this is an E-ATX board so it simply will not fit.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="941" height="764" src="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135859.jpg" alt="" class="wp-image-9210" srcset="https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135859.jpg 941w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135859-300x244.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2019/02/P_20190206_135859-768x624.jpg 768w" sizes="auto, (max-width: 941px) 100vw, 941px" /><figcaption>view from above</figcaption></figure>



<p class="wp-block-paragraph">Another nice server like feature is that the board has an LED readout for early post codes, as booting this board will take some time.  I think with 32GB of RAM it&#8217;s almost a minute.</p>



<p class="wp-block-paragraph">I took the SSD &amp; Hard disk out of my MacPro 2010 and put them into the new machine, and it booted up right away.  Once connected to the internet Windows 10 picked up the new hardware and downloaded and installed the board drivers as needed.  Interestingly enough Windows 10 also wanted a new activation code as the CPU/Motherboard was changed, although it didn&#8217;t complain about it.</p>



<p class="wp-block-paragraph">When it comes to jobs that can run in parallel this is an incredible build.  Obviously single core performance at 2Ghz is. well. terrible.  I know going to a 4Ghz max E5-2667 v2 won&#8217;t be exactly magic either, but there is something nice about having 32 threads.  Running stuff like parallel compiles, compression and video encoding is a dream on these massively parallel machines.</p>



<p class="wp-block-paragraph">Games, are &#8216;okay&#8217;.  I get 60fps with Fallout 76 on this current 2Ghz build on medium settings with the 1050 video card.</p>



<p class="wp-block-paragraph">I do plan on getting faster CPU&#8217;s after the Chinese New Year, as right now basically everything is shut down (it sucks being the only person in the office building, literally), and shipments wont&#8217; resume for at least another week.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2019/02/06/huananzhi-x79/feed/</wfw:commentRss>
			<slash:comments>38</slash:comments>
		
		
			</item>
	</channel>
</rss>
