<?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>Windows XP &#8211; Virtually Fun</title>
	<atom:link href="https://virtuallyfun.com/category/windows-xp/feed/" rel="self" type="application/rss+xml" />
	<link>https://virtuallyfun.com</link>
	<description>Fun with Virtualization</description>
	<lastBuildDate>Tue, 02 Jun 2026 09:05:48 +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>Pinball on 64-bit Alpha AXP Windows NT</title>
		<link>https://virtuallyfun.com/2026/06/02/pinball-on-64-bit-alpha-axp-windows-nt/</link>
					<comments>https://virtuallyfun.com/2026/06/02/pinball-on-64-bit-alpha-axp-windows-nt/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 02 Jun 2026 06:54:42 +0000</pubDate>
				<category><![CDATA[assembly]]></category>
		<category><![CDATA[DEC Alpha]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[guest post]]></category>
		<category><![CDATA[microsoft windows]]></category>
		<category><![CDATA[Windows XP]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=15787</guid>

					<description><![CDATA[This is a guest post from Yufeng Gao One of the most popular OS built-in games is no doubt&#160;Pinball, known by its full name&#160;3D Pinball for Windows – Space Cadet. It started out as&#160;Full Tilt! Pinball, developed by&#160;Cinematronics&#160;and published by&#160;Maxis. &#8230; <a href="https://virtuallyfun.com/2026/06/02/pinball-on-64-bit-alpha-axp-windows-nt/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>This is a guest post from <a href="https://thebrokenpipe.com/blog/author/brokenpipe/">Yufeng Gao</a></em></p>



<p class="wp-block-paragraph">One of the most popular OS built-in games is no doubt&nbsp;<a href="https://en.wikipedia.org/wiki/Full_Tilt!_Pinball#3D_Pinball_for_Windows_%E2%80%93_Space_Cadet">Pinball</a>, known by its full name&nbsp;<em>3D Pinball for Windows – Space Cadet</em>. It started out as&nbsp;<em>Full Tilt! Pinball</em>, developed by&nbsp;<a href="https://en.wikipedia.org/wiki/Cinematronics,_LLC">Cinematronics</a>&nbsp;and published by&nbsp;<a href="https://en.wikipedia.org/wiki/Maxis">Maxis</a>. It offered 3 tables, and one of them, Space Cadet, was licensed to Microsoft to be included in Microsoft Plus! 95 and, later, built into the Windows operating system.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2026/06/pinball_gameplay.gif"><img fetchpriority="high" decoding="async" width="642" height="492" src="https://virtuallyfun.com/wp-content/uploads/2026/06/pinball_gameplay.gif" alt="" class="wp-image-15800"/></a></figure>



<p class="wp-block-paragraph">Windows XP was the last version of Windows to include Pinball, and Raymond Chen&nbsp;<a href="https://devblogs.microsoft.com/oldnewthing/20121218-00/?p=5803">explained why it didn’t make it to Windows Vista</a>&nbsp;on his blog. The reason was it had a collision detector bug when it was compiled for 64-bit Windows, which caused the ball to pass through various objects – falling off the screen through the plunger instead of being launched, for instance. The bug rendered the game unplayable, and Raymond and his colleague were unable to find a fix in a reasonable amount of time, so he removed it. At least that’s the story we were told, for about a decade.</p>



<p class="wp-block-paragraph">In 2021,&nbsp;<a href="https://www.youtube.com/c/NCommander">NCommander</a>&nbsp;launched&nbsp;<a href="https://www.youtube.com/watch?v=3EPTfOTC4Jw">a series of investigations</a>&nbsp;to challenge that, testing Pinball on various 64-bit (IA-64 and AMD64) builds of Windows XP and pre-release Vista. He found that the 64-bit versions of Pinball were all highly playable, with only very minor glitches, and speculated that the reason for its removal was that the UI did not fit into the Windows Vista design.</p>



<p class="wp-block-paragraph">Not long after NCommander published his video, Raymond followed up with a&nbsp;<a href="https://devblogs.microsoft.com/oldnewthing/20220106-00/?p=106122">post that filled in some gaps</a>&nbsp;in the story and shed more light on the bug. He said it was the 64-bit Alpha AXP version of Pinball that had the extremely bad collision detection bug. This claim had been unverifiable for the past 5 years, for the following reasons:</p>



<ul class="wp-block-list">
<li>No 64-bit Windows was ever released for the Alpha AXP – Compaq killed Windows NT support before NT was ported to 64-bit</li>



<li>One 64-bit Alpha AXP NT build was leaked in 2023, but the included Pinball does not work, as it segfaults immediately upon running</li>
</ul>



<p class="wp-block-paragraph">I’ve had an interest in the DEC Alpha for quite some time now, mainly out of my love for DEC architectures and my love for UNIX. VAX is the direct successor of PDP-11, and Alpha is the direct successor of VAX. Earlier, some Alpha emulation breakthroughs dropped, and I was pinged by a few friends that NT 4.0 could now run on a&nbsp;<a href="https://github.com/ES40-Emu/es40/">fork of the ES40 emulator</a>, as well as on&nbsp;<a href="https://github.com/TheBrokenPipe/qemu/tree/alphafix">QEMU</a>. I never thought Alpha NT would ever run under emulation, because unlike the familiar Tru64, Linux and the BSDs, NT uses its own custom PALcode and depends on ARC (Advanced RISC Computing) instead of SRM. Of course, people noted that the emulators couldn’t run the holy grail of Alpha NT – Windows (XP?) build 2210, because its kernel would panic with a memory management error in QEMU, or wouldn’t detect the keyboard and bug out in ES40. A few trips to hell in the symbol-less NT kernel and a few MMU emulation fixes later, I was able to patch up both QEMU and ES40 to boot that only surviving 64-bit build of Alpha NT.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2026/06/image-1.png"><img decoding="async" width="923" height="728" src="https://virtuallyfun.com/wp-content/uploads/2026/06/image-1.png" alt="" class="wp-image-15789" srcset="https://virtuallyfun.com/wp-content/uploads/2026/06/image-1.png 923w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-1-300x237.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-1-768x606.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-1-380x300.png 380w" sizes="(max-width: 923px) 100vw, 923px" /></a></figure>



<p class="wp-block-paragraph">After torturing my brain debugging a symbol-less NT kernel without a kernel debugger, I thought I’d give fixing Pinball a go, to make things worthwhile. One of the benefits of debugging a userland process is that, while there’s still no debugger, there is&nbsp;<a href="https://en.wikipedia.org/wiki/Dr._Watson_(debugger)">Dr. Watson</a>, which takes core dumps and performs simple post-mortems. Something is better than nothing, as people would say.</p>



<p class="wp-block-paragraph">Running Pinball gives the classic crash symptom immediately, with no graphics drawn:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2026/06/image-2.png"><img decoding="async" width="427" height="172" src="https://virtuallyfun.com/wp-content/uploads/2026/06/image-2.png" alt="" class="wp-image-15790" srcset="https://virtuallyfun.com/wp-content/uploads/2026/06/image-2.png 427w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-2-300x121.png 300w" sizes="(max-width: 427px) 100vw, 427px" /></a></figure>
</div>


<p class="wp-block-paragraph">Dr. Watson concludes that it died of a segfault:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2026/06/image-3.png"><img loading="lazy" decoding="async" width="358" height="481" src="https://virtuallyfun.com/wp-content/uploads/2026/06/image-3.png" alt="" class="wp-image-15791" srcset="https://virtuallyfun.com/wp-content/uploads/2026/06/image-3.png 358w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-3-223x300.png 223w" sizes="auto, (max-width: 358px) 100vw, 358px" /></a></figure>
</div>


<p class="wp-block-paragraph">It gave a nice dump of registers at the time of the fault:</p>



<pre class="wp-block-code"><code>State Dump for Thread Id 0x124

  v0=01002930 00000000   t0=00000000 00360000   t1=00000000 00000001
  t2=00000000 00360000   t3=00000000 00000000   t4=00000000 00000000
  t5=00000000 0000011c   t6=000003ff fff8f868   t7=00000000 00303030
  s0=000003ff fff8fac0   s1=01002930 00000000   s2=000003ff fff8fad8
  s3=00000000 00000000   s4=00000000 0106f2a8   s5=00000000 01000000
  fp=00000000 00000010   a0=01002930 00000000   a1=00000000 00000000
  a2=000003ff fff8fad8   a3=00000000 30010000   a4=00000000 69e17610
  a5=00000000 69e0a360   t8=000003ff fff8f868   t9=00000000 00000000
 t10=00000000 00300000  t11=00000000 00000002   ra=00000000 69e9d5c0
 t12=00000000 6a264710   at=ffffffff fffffe10   gp=00000000 00000000
  sp=000003ff fff8fa50 zero=00000000 00000000 fpcr=08000000 00000000
SoftFpcr=00000000 00000000  fir=6a264710
 psr=00000003
mode=1 ie=1 irql=0 </code></pre>



<p class="wp-block-paragraph">Some disassembly around the faulting instruction:</p>



<pre class="wp-block-code"><code>function: Otsstrlen
FAULT -&gt;00000000'6a264710: 2f700000 ldq_u t12,0(a0)
        00000000'6a264714: 239fffff lda at,-1(zero)
        00000000'6a264718: 4b90065c mskql at,a0,at
        00000000'6a26471c: 4600f000 and a0,#7,v0
        00000000'6a264720: 477c041b bis t12,at,t12
        00000000'6a264724: 43fb01fb cmpbge zero,t12,t12
        00000000'6a264728: 43e00520 subq zero,v0,v0
        00000000'6a26472c: f7600005 bne t12,00000000'6a264744 Otsstrlen+00000034
        00000000'6a264730: 2f700008 ldq_u t12,8(a0)
        00000000'6a264734: 42011410 addq a0,#8,a0
        00000000'6a264738: 40011400 addq v0,#8,v0
        00000000'6a26473c: 43fb01fb cmpbge zero,t12,t12</code></pre>



<p class="wp-block-paragraph">And a very useful stack backtrace:</p>



<pre class="wp-block-code"><code>*----&gt; Stack Back Trace &lt;----*

FramePtr ReturnAd Param#1  Param#2  Param#3  Param#4  Function Name
000003FFFFF8FA50 0000000069E9D5BC 0100293000000000 0000000000000000 000003FFFFF8FAD8 0000000030010000 !Otsstrlen 
000003FFFFF8FA50 0000000069E9DB64 0100293000000000 0000000000000000 000003FFFFF8FAD8 0000000030010000 !PostThreadMessageA 
000003FFFFF8FA90 0000000069E9C000 0100293000000000 0000000000000000 000003FFFFF8FAD8 0000000030010000 !SetClassLongA 
000003FFFFF8FB80 000000000100F914 000003FFFFF8FC58 0000000000000000 000003FFFFF8FAD8 0000000030010000 !RegisterClassA 
000003FFFFF8FBF0 0000000001012A1C 0000000001000000 0000000001002DC8 000003FFFFF8FAD8 0000000030010000 !&lt;nosymbols&gt; 
000003FFFFF8FCA0 0000000001064B0C 0000000001000000 0000000001002DC8 000003FFFFF8FAD8 0000000030010000 !&lt;nosymbols&gt; 
000003FFFFF8FED0 0000000068948C50 0000000001000000 0000000001002DC8 000003FFFFF8FAD8 0000000030010000 !&lt;nosymbols&gt; 
000003FFFFF8FFC0 0000000000000000 0000000001064800 0000000001002DC8 000003FFFFF8FAD8 0000000030010000 !BaseProcessStart </code></pre>



<p class="wp-block-paragraph">Ok, so it died inside&nbsp;<code>RegisterClassA</code>, a critical Win32 API function. That API function couldn’t have been the culprit, because if it were bugged, no GUI Win32 program would run at all. This means the only possible source of the error is its sole argument – a pointer to a&nbsp;<code>WNDCLASSA</code>&nbsp;struct. Needless to say, the pointer itself was valid, otherwise the API would’ve detected the invalid argument, or the segfault would’ve happened a lot sooner.</p>



<p class="wp-block-paragraph">From the stack trace, the return address of&nbsp;<code>RegisterClassA</code>&nbsp;was&nbsp;<code>0x100F914</code>, inside the function&nbsp;<code>splash_screen</code>. A quick disassembly of the instructions preceding that address shows a&nbsp;<code>WNDCLASSA</code>&nbsp;structure being built with the following layout:</p>



<pre class="wp-block-code"><code>00000000 u32 style         = 0
00000004 u64 lpfnWndProc   = splash_message_handler (0x100FE40)
0000000C u32 cbClsExtra    = 0
00000010 u32 cbWndExtra    = 8
00000014 u64 hInstance     = *0x106AE30
0000001C u64 hIcon         = NULL
00000024 u64 hCursor       = LoadCursorA(NULL, IDC_ARROW)
0000002C u64 hbrBackground = NULL
00000034 u64 lpszMenuName  = "" (0x1002710)
0000003C u64 lpszClassName = "3DPB_SPLASH_CLASS" (0x1002930)</code></pre>



<p class="wp-block-paragraph">Right off the bat, I noticed something wrong – the field alignment. It is a general requirement that fields be aligned to their size, as in 8-bit fields should be byte-aligned, 16-bit fields should be 16-bit (2-byte) aligned, 32-bit fields should be 32-bit (4-byte) aligned, and 64-bit fields should be 64-bit (8-byte) aligned. If you look at the offsets of the fields above, the 32-bit ones are indeed 4-byte aligned, but the 64-bit ones are not. At the start, we have a 32-bit&nbsp;<code>style</code>&nbsp;field followed by a 64-bit&nbsp;<code>lpfnWndProc</code>, and to satisfy the alignment requirements, a 4-byte padding should be inserted between&nbsp;<code>style</code>&nbsp;and&nbsp;<code>lpfnWndProc</code>&nbsp;to ensure that&nbsp;<code>lpfnWndProc</code>&nbsp;starts on an 8-byte boundary.&nbsp;<code>RegisterClassA</code>&nbsp;was expecting this padding, but Pinball lacked it, so it read data from the wrong offset and crashed.</p>



<p class="wp-block-paragraph">To fix this, I simply bumped the offset of each field after&nbsp;<code>style</code>&nbsp;up by 4 bytes.</p>



<pre class="wp-block-code"><code> 00000000 u32 style         = 0
-00000004 u64 lpfnWndProc   = splash_message_handler (0x100FE40)
+00000008 u64 lpfnWndProc   = splash_message_handler (0x100FE40)
-0000000C u32 cbClsExtra    = 0
+00000010 u32 cbClsExtra    = 0
-00000010 u32 cbWndExtra    = 8
+00000014 u32 cbWndExtra    = 8
-00000014 u64 hInstance     = *0x106AE30
+00000018 u64 hInstance     = *0x106AE30
-0000001C u64 hIcon         = NULL
+00000020 u64 hIcon         = NULL
-00000024 u64 hCursor       = LoadCursorA(NULL, IDC_ARROW)
+00000028 u64 hCursor       = LoadCursorA(NULL, IDC_ARROW)
-0000002C u64 hbrBackground = NULL
+00000030 u64 hbrBackground = NULL
-00000034 u64 lpszMenuName  = "" (0x1002710)
+00000038 u64 lpszMenuName  = "" (0x1002710)
-0000003C u64 lpszClassName = "3DPB_SPLASH_CLASS" (0x1002930)
+00000040 u64 lpszClassName = "3DPB_SPLASH_CLASS" (0x1002930)</code></pre>



<p class="wp-block-paragraph">But that was not sufficient – Pinball calls&nbsp;<code>RegisterClassA</code>&nbsp;in 4 different places –&nbsp;<code>Sound_Init</code>,&nbsp;<code>splash_screen</code>,&nbsp;<code>WinMain</code>&nbsp;and&nbsp;<code>WaveMixStartup</code>. I’d already patched the one in&nbsp;<code>splash_screen</code>, so I started going through the rest one by one.</p>



<p class="wp-block-paragraph">The ones in&nbsp;<code>Sound_Init</code>&nbsp;and&nbsp;<code>WinMain</code>&nbsp;were identical to the one in&nbsp;<code>splash_screen</code>, but for some strange reason the one in&nbsp;<code>WaveMixStartup</code>&nbsp;already had the correct alignment:</p>



<pre class="wp-block-code"><code>00000000 u32 style         = 0
00000004 u32 &lt;unused&gt;      = &lt;undefined&gt;
00000008 u64 lpfnWndProc   = WndProc (0x105CFA0)
00000010 u32 cbClsExtra    = 0
00000014 u32 cbWndExtra    = 0
00000018 u64 hInstance     = *0x106B818
00000020 u64 hIcon         = NULL
00000028 u64 hCursor       = LoadCursorA(NULL, IDC_ARROW)
00000030 u64 hbrBackground = GetStockObject(LTGRAY_BRUSH)
00000038 u64 lpszMenuName  = NULL
00000040 u64 lpszClassName = "WavMix32" (0x10050B0)</code></pre>



<p class="wp-block-paragraph">I can’t think of why the same struct would be aligned differently within the same binary, unless they came from different objects compiled with different flags or something.</p>



<p class="wp-block-paragraph">Anyway, with the&nbsp;<code>WNDCLASSA</code>&nbsp;struct alignment fixed in 3 of the 4 places, I ran Pinball again. This time it created the fullscreen window and attempted to draw the splash screen before dying of another segfault:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2026/06/image-4.png"><img loading="lazy" decoding="async" width="1024" height="740" src="https://virtuallyfun.com/wp-content/uploads/2026/06/image-4.png" alt="" class="wp-image-15792" srcset="https://virtuallyfun.com/wp-content/uploads/2026/06/image-4.png 1024w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-4-300x217.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-4-768x555.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-4-415x300.png 415w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p class="wp-block-paragraph">Crash log shows that the segfault happened deep in the Win32 audio system, while calling&nbsp;<code>auxSetVolume</code>:</p>



<pre class="wp-block-code"><code>*----&gt; Stack Back Trace &lt;----*

FramePtr ReturnAd Param#1  Param#2  Param#3  Param#4  Function Name
000003FFFFF8E9C0 0000000050306E84 00000000FFE5D420 0000000000000000 000003FFFFE5D420 0000000000000000 !&lt;nosymbols&gt; 
000003FFFFF8E9E0 00000000503034B8 00000000FFE5D420 0000000000000000 000003FFFFE5D420 0000000000000000 !&lt;nosymbols&gt; 
000003FFFFF8EA10 0000000050304B60 00000000FFE5D420 0000000000000000 000003FFFFE5D420 0000000000000000 !&lt;nosymbols&gt; 
000003FFFFF8EA90 0000000050305B8C 00000000FFE5D420 0000000000000000 000003FFFFE5D420 0000000000000000 !&lt;nosymbols&gt; 
000003FFFFF8EB20 000000000001AF78 00000000FFE5D420 0000000000000000 000003FFFFE5D420 0000000000000000 !&lt;nosymbols&gt; 
000003FFFFF8EB60 0000000000025AFC 00000000FFE5D420 0000000000000000 000003FFFFE5D420 0000000000000000 !auxSetVolume 
000003FFFFF8EBD0 0000000000025F98 00000000FFE5D420 0000000000000000 000003FFFFE5D420 0000000000000000 !mixerSetControlDetails 
000003FFFFF8EC80 0000000000027214 00000000FFE5D420 0000000000000000 000003FFFFE5D420 0000000000000000 !mixerSetControlDetails 
000003FFFFF8ED30 0000000000030644 00000000FFE5D420 0000000000000000 000003FFFFE5D420 0000000000000000 !mciSendCommandW 
&#91;...]
000003FFFFF8FC60 0000000001012AB4 0000000000000000 000003FFFFE5DE00 000003FFFFE5D420 0000000000000000 !CreateWindowExA 
000003FFFFF8FCA0 0000000001064B0C 0000000000000000 000003FFFFE5DE00 000003FFFFE5D420 0000000000000000 !&lt;nosymbols&gt; 
000003FFFFF8FED0 0000000068948C50 0000000000000000 000003FFFFE5DE00 000003FFFFE5D420 0000000000000000 !&lt;nosymbols&gt; 
000003FFFFF8FFC0 0000000000000000 0000000001064800 000003FFFFE5DE00 000003FFFFE5D420 0000000000000000 !BaseProcessStart</code></pre>



<p class="wp-block-paragraph">The fault happened while trying to dereference a pointer in the register&nbsp;<code>a0</code>&nbsp;(<code>r16</code>):</p>



<pre class="wp-block-code"><code>function: &lt;nosymbols&gt;
        00000000'50305658: 00000000 halt
        00000000'5030565c: 00000000 halt
        00000000'50305660: 23deffe0 lda sp,-20(sp)
        00000000'50305664: b53e0000 stq s0,0(sp)
        00000000'50305668: b55e0008 stq s1,8(sp)
        00000000'5030566c: b57e0010 stq s2,10(sp)
        00000000'50305670: b75e0018 stq ra,18(sp)
        00000000'50305674: 47f00409 bis zero,a0,s0
        00000000'50305678: 47f1040a bis zero,a1,s1
        00000000'5030567c: 47ff040b bis zero,zero,s2
<strong>FAULT -&gt;00000000'50305680: a2100128 ldl a0,128(a0)</strong>
        00000000'50305684: 20500001 lda t1,1(a0)
        00000000'50305688: e440001b beq t1,00000000'503056f8 00000000'503056f8
        00000000'5030568c: d35ff6f8 bsr ra,00000000'50303270 00000000'50303270
        00000000'50305690: e4000019 beq v0,00000000'503056f8 00000000'503056f8
        00000000'50305694: 47e00411 bis zero,v0,a1
        00000000'50305698: 454b0801 xor s1,s2,t0
        00000000'5030569c: e4200005 beq t0,00000000'503056b4 00000000'503056b4
        00000000'503056a0: a2090128 ldl a0,128(s0)
        00000000'503056a4: d35ff722 bsr ra,00000000'50303330 00000000'50303330
        00000000'503056a8: 4160300b addl s2,#1,s2
        00000000'503056ac: 47e00411 bis zero,v0,a1</code></pre>



<p class="wp-block-paragraph">The register dump shows the value of&nbsp;<code>a0</code>&nbsp;at the time of the crash:</p>



<pre class="wp-block-code"><code>State Dump for Thread Id 0x150

  v0=000003ff ffe5de00   t0=00000000 00000000   t1=00000000 00000058
  t2=00000000 50306150   t3=00000000 0000015e   t4=00000000 00000001
  t5=00000000 00000001   t6=00000000 50300000   t7=00000000 00ed39fb
  s0=00000000 ffe5d420   s1=00000000 00000000   s2=00000000 00000000
  s3=00000000 00000000   s4=00000000 00000001   s5=00000000 50305a10
  fp=00000000 000123b8   <strong>a0=00000000 ffe5d420</strong>   a1=00000000 00000000
  a2=000003ff ffe5d420   a3=00000000 00000000   a4=00000000 00000000
  a5=00000000 cc5a4dbc   t8=00000001 00000000   t9=00000000 00000612
 t10=d1b71758 e219652c  t11=00000000 00000612   ra=00000000 50306e88
 t12=00000000 00000000   at=00000000 00010000   gp=00000000 00000000
  sp=000003ff fff8e9c0 zero=00000000 00000000 fpcr=89000000 00000000
SoftFpcr=00000000 00000000  fir=50305680
 psr=00000003
mode=1 ie=1 irql=0 </code></pre>



<p class="wp-block-paragraph">Indeed, it was an invalid pointer! As you can see, it’s identical to the pointer in&nbsp;<code>a2</code>, but with the entire top 32 bits zeroed. It must’ve been truncated by a bug somewhere, either in the audio subsystem or in Pinball itself.</p>



<p class="wp-block-paragraph">I spent some time and pinned down the DLL responsible for the fault –&nbsp;<code>mciseq.dll</code>, and did some tracing. The truncation of&nbsp;<code>a0</code>&nbsp;happened when&nbsp;<code>a2</code>&nbsp;was moved into&nbsp;<code>a0</code>:</p>



<pre class="wp-block-code"><code>50306150    ZAPNOT  a2,#15,a0</code></pre>



<p class="wp-block-paragraph"><code>ZAPNOT</code>&nbsp;is an interesting instruction – it takes a source register, a bitmask and a destination register, and it “zaps” (zeros) the bytes whose corresponding bit in the bitmask is 0. In this case, the bitmask is&nbsp;<code>15</code>, which is&nbsp;<code>00001111</code>&nbsp;in binary. From this we can work out that the&nbsp;<code>ZAPNOT</code>&nbsp;instruction at&nbsp;<code>0x50306150</code>&nbsp;zeros the upper 4 bytes of&nbsp;<code>a2</code>, when it is copied into&nbsp;<code>a0</code>. This perfectly explains why, at the time of the fault,&nbsp;<code>a0</code>&nbsp;contained a truncated version of the pointer in&nbsp;<code>a2</code>.</p>



<p class="wp-block-paragraph">Of course,&nbsp;<code>0x50306150</code>&nbsp;was not the only place where it truncated 64-bit pointers, I found 6 truncations of the exact same type in&nbsp;<code>mciseq.dll</code>. I have not the slightest clue why it decided to truncate pointers. If I had to guess, maybe they had pointer → integer → pointer casts for whatever reason, and that integer type was 32-bit. With all 6 truncations patched out, we have some Pinball for ourselves:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2026/06/image-5.png"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2026/06/image-5.png" alt="" class="wp-image-15793" srcset="https://virtuallyfun.com/wp-content/uploads/2026/06/image-5.png 1024w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-5-300x225.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-5-768x576.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-5-400x300.png 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p class="wp-block-paragraph">Here’s proof that Pinball is indeed running on a 64-bit build of Alpha NT:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2026/06/image-6.png"><img loading="lazy" decoding="async" width="1024" height="768" src="https://virtuallyfun.com/wp-content/uploads/2026/06/image-6.png" alt="" class="wp-image-15794" srcset="https://virtuallyfun.com/wp-content/uploads/2026/06/image-6.png 1024w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-6-300x225.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-6-768x576.png 768w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-6-400x300.png 400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p class="wp-block-paragraph">To make Pinball work on your NT build 2210 install, replace&nbsp;<code>%ProgramFiles%\Windows NT\Pinball\pinball.exe</code>&nbsp;and&nbsp;<code>%windir%\system32\mciseq.dll</code>&nbsp;with the following:</p>



<ul class="wp-block-list">
<li>Patched&nbsp;<code><a href="https://thebrokenpipe.com/uploads/pinball_fix/pinball.exe">pinball.exe</a></code></li>



<li>Patched&nbsp;<code><a href="https://thebrokenpipe.com/uploads/pinball_fix/mciseq.dll">mciseq.dll</a></code></li>
</ul>



<p class="wp-block-paragraph">You could also patch the installation files and burn them to a new CD if you want Pinball to work out of the box on fresh installs – simply copy these files to the&nbsp;<code>AXP64</code>&nbsp;directory of the install disc:</p>



<ul class="wp-block-list">
<li>Patched&nbsp;<code><a href="https://thebrokenpipe.com/uploads/pinball_fix/PINBALL.EX_">PINBALL.EX_</a></code></li>



<li>Patched&nbsp;<code><a href="https://thebrokenpipe.com/uploads/pinball_fix/MCISEQ.DL_">MCISEQ.DL_</a></code></li>
</ul>



<h2 class="wp-block-heading">The Bug</h2>



<p class="wp-block-paragraph">Now I’m going to disappoint you with the fact that I did not find the collision detector bug Raymond talked about. With the struct alignment and pointer truncation issues patched, the game now works flawlessly. Ok, I’m not sure if it’s actually flawless, but I never saw any glitches in the few games I played. At the very least, the ball does not fall through the plunger, can be launched and bounces around the table just fine.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2026/06/image-7.png"><img loading="lazy" decoding="async" width="648" height="490" src="https://virtuallyfun.com/wp-content/uploads/2026/06/image-7.png" alt="" class="wp-image-15795" srcset="https://virtuallyfun.com/wp-content/uploads/2026/06/image-7.png 648w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-7-300x227.png 300w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-7-397x300.png 397w" sizes="auto, (max-width: 648px) 100vw, 648px" /></a></figure>
</div>


<p class="wp-block-paragraph">Below are the 2 reasons I could think of for not seeing the collision detector bug:</p>



<ul class="wp-block-list">
<li>The bug was introduced after build 2210. Build 2210 has Pinball installed by default and predates Windows XP by almost a year and a half, so it almost certainly predates Raymond removing it. In this build, Pinball doesn’t even run by default, so there’s no way they could’ve tested it and seen the bug. They probably only started testing Pinball later, after they fixed the struct alignment and pointer truncation issues.</li>



<li>The bug only manifests in free/release builds, not in checked/debug builds. Maybe it only shows up when the code is compiled with the more aggressive optimisation used by release builds – something that happens quite often when code has undefined behaviour or the compiler has bugs. This is less plausible, however, as I’m sure Raymond would’ve used debug builds when he attempted to debug it, and discovered any differences between debug and retail builds.</li>
</ul>



<p class="wp-block-paragraph">Of course, only Raymond himself could shed more light on this topic. It was fun (<em>read</em>: painful) debugging Pinball, as well as the NT kernel to fix the emulators – too much fun (<em>read</em>: pain) that I will never do it again.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">Some trivia about me and pinball:</p>



<p class="wp-block-paragraph">I spent a fair chunk of my kindergarten and pre-school days playing the various games my dad installed on our Windows XP home computer, however, there was one game that I never quite figured out how to play – Pinball. It came bundled with the OS, and the splash screen scared me every time I tried to open it up.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="424" height="282" src="https://virtuallyfun.com/wp-content/uploads/2026/06/image-8.png" alt="" class="wp-image-15796" srcset="https://virtuallyfun.com/wp-content/uploads/2026/06/image-8.png 424w, https://virtuallyfun.com/wp-content/uploads/2026/06/image-8-300x200.png 300w" sizes="auto, (max-width: 424px) 100vw, 424px" /></figure>
</div>


<p class="wp-block-paragraph">The flipper looked like a pistol to my 3-year-old self, and the overall darkness of the splash screen just injected fear into me. I would open the game, close my eyes, count to 20, then open my eyes again, to skip past the splash screen.</p>



<p class="wp-block-paragraph">The first time I actually played a full game of pinball was on the first day of this year, when a friend of mine took me to an arcade. After playing pinball in real life, the Pinball game finally started to make sense.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2026/06/02/pinball-on-64-bit-alpha-axp-windows-nt/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Installing Windows XP on a Lenovo S20</title>
		<link>https://virtuallyfun.com/2023/07/15/installing-windows-xp-on-a-lenovo-s20/</link>
					<comments>https://virtuallyfun.com/2023/07/15/installing-windows-xp-on-a-lenovo-s20/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sat, 15 Jul 2023 12:41:21 +0000</pubDate>
				<category><![CDATA[hard disks]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[Win32]]></category>
		<category><![CDATA[Windows XP]]></category>
		<guid isPermaLink="false">http://virtuallyfun.com/?p=12976</guid>

					<description><![CDATA[This was a silly side project that got out of hand, building an XP physical machine to run some old software. Over in the UK, there is this fantastical store, CeX that sells all kinds of retro crap, often for &#8230; <a href="https://virtuallyfun.com/2023/07/15/installing-windows-xp-on-a-lenovo-s20/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="alignleft size-large is-resized"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/leno-s20-30pct.jpg"><img loading="lazy" decoding="async" src="https://virtuallyfun.com/wp-content/uploads/2023/07/leno-s20-30pct-617x1024.jpg" alt="" class="wp-image-12977" width="247" height="421"/></a></figure>
</div>


<p class="wp-block-paragraph">This was a silly side project that got out of hand, building an XP physical machine to run some old software.  Over in the UK, there is this fantastical store, <a rel="noreferrer noopener" href="https://uk.webuy.com/" target="_blank">CeX</a> that sells all kinds of retro crap, often for cheap.  Normally I wouldn&#8217;t care but with pc titles going from £0.50 to £3 it seemed like some fun 1990&#8217;s computing value right there!</p>



<p class="wp-block-paragraph">I had been slowly amassing a collection of bargain bin, garbage tier games &#8216;from back in the day&#8217; and while I had been running a few on VMware on Windows 10, with that sub £5 copy of Windows XP home, it sadly didn&#8217;t help with so many games being copy protected.</p>



<p class="wp-block-paragraph">I would need a physical machine, and that is where this hunk of junk the S20 fell into place.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/lenovo-s20-system-summary.png"><img loading="lazy" decoding="async" width="969" height="538" src="https://virtuallyfun.com/wp-content/uploads/2023/07/lenovo-s20-system-summary.png" alt="" class="wp-image-12978" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/lenovo-s20-system-summary.png 969w, https://virtuallyfun.com/wp-content/uploads/2023/07/lenovo-s20-system-summary-300x167.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/lenovo-s20-system-summary-768x426.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/07/lenovo-s20-system-summary-500x278.png 500w" sizes="auto, (max-width: 969px) 100vw, 969px" /></a><figcaption class="wp-element-caption">S20 is way overkill!</figcaption></figure>



<p class="wp-block-paragraph">When it comes to Windows XP, the S20 is no slouch.  With 12GB of RAM, a Nehalem 3Ghz Xeon W3550 @3Ghz, 2x 120GB SSD drives, and a functional optical disk, this makes for a great system. Rounding out the absurdity is a Nvidia Quadro 4000 with 2GB of VRAM.  I&#8217;m pretty sure when XP was new I was still using a PII 233Mhz with 256Mb of RAM.  So yeah, this is way overkill.</p>



<p class="wp-block-paragraph">Since all the disks are SATA, the default install CD won&#8217;t work.  As a matter of fact, not much works on the retail CD-ROM.  I tried to use rufus but&#8230;</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-XP-booting-on-a-Rufus-prepared-USB-Key.png"><img loading="lazy" decoding="async" width="862" height="304" src="https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-XP-booting-on-a-Rufus-prepared-USB-Key.png" alt="" class="wp-image-12979" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-XP-booting-on-a-Rufus-prepared-USB-Key.png 862w, https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-XP-booting-on-a-Rufus-prepared-USB-Key-300x106.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-XP-booting-on-a-Rufus-prepared-USB-Key-768x271.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/07/Windows-XP-booting-on-a-Rufus-prepared-USB-Key-500x176.png 500w" sizes="auto, (max-width: 862px) 100vw, 862px" /></a><figcaption class="wp-element-caption">Setup cannot find the End User Licensing Agreement (EULA).</figcaption></figure>



<p class="wp-block-paragraph">I got this strange error from the USB stick.  It appears after some searching it&#8217;s seeing the CD-ROM and trying to load the rest of the installer from there.  Further searches said don&#8217;t use Rufus, instead use &#8220;<a href="https://archive.org/details/win-setup-from-usb-1-10" target="_blank" rel="noreferrer noopener">WinSetupFromUSB-1-10</a>&#8220;.  I figured if I was going to use something like this, that I&#8217;d want some crazy pirated/hacked up to date version of XP to compliment the whole hacked up experience, so I went with the seemingly reputable &#8220;<a rel="noreferrer noopener" href="https://archive.org/details/WinXPIntegralEdition-2022616" target="_blank">Windows XP SP3 Integral Edition 2022-6-16</a>&#8220;.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://archive.org/details/win-setup-from-usb-1.10"><img loading="lazy" decoding="async" width="758" height="620" src="https://virtuallyfun.com/wp-content/uploads/2023/07/make-xp-boot-usb.png" alt="" class="wp-image-12980" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/make-xp-boot-usb.png 758w, https://virtuallyfun.com/wp-content/uploads/2023/07/make-xp-boot-usb-300x245.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/make-xp-boot-usb-367x300.png 367w" sizes="auto, (max-width: 758px) 100vw, 758px" /></a><figcaption class="wp-element-caption">WinSetupFromUSB 1.10</figcaption></figure>
</div>


<p class="wp-block-paragraph">Options seemed to be somewhat straightforward, make sure it targets your USB drive! not any external backups.  It does recommend you reformat with NTFS &amp; set the alignment for a much needed speed improvement.  Other than checking a few boxes to make sure it&#8217;s got the BTS driver pack &amp; it&#8217;s a 2000/XP/2003 from USB install it pretty much worked.</p>



<p class="wp-block-paragraph">After rebooting to the USB, be sure to select the </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="988" height="236" src="https://virtuallyfun.com/wp-content/uploads/2023/07/WinSetupFrom-USB-1.10-for-xpsp3-always-boot-with-option-1-first.png" alt="" class="wp-image-12981" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/WinSetupFrom-USB-1.10-for-xpsp3-always-boot-with-option-1-first.png 988w, https://virtuallyfun.com/wp-content/uploads/2023/07/WinSetupFrom-USB-1.10-for-xpsp3-always-boot-with-option-1-first-300x72.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/WinSetupFrom-USB-1.10-for-xpsp3-always-boot-with-option-1-first-768x183.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/07/WinSetupFrom-USB-1.10-for-xpsp3-always-boot-with-option-1-first-500x119.png 500w" sizes="auto, (max-width: 988px) 100vw, 988px" /></figure>



<p class="wp-block-paragraph">By selecting this option it&#8217;ll inject the needed &#8216;modern&#8217; disk drivers.  Otherwise it just wont work (EULA error or inaccessible boot device).</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Installing Windows XP using WinSetupFromUSB-1-10" width="584" height="329" src="https://www.youtube.com/embed/DZR20XBZ_qw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">If everything goes well it&#8217;ll have injected a tonne of drivers, allowing the install to work.</p>



<p class="wp-block-paragraph">Once the text part of setup is completed, be sure to boot off the USB again, again choosing option 1 to Auto-detect and use SATA/RAID/SCSI, but then choose option 4 for the Second part of the Windows XP setup.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/Integral-Edition-Graphical-Boot.png"><img loading="lazy" decoding="async" width="888" height="461" src="https://virtuallyfun.com/wp-content/uploads/2023/07/Integral-Edition-Graphical-Boot.png" alt="" class="wp-image-12983" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/Integral-Edition-Graphical-Boot.png 888w, https://virtuallyfun.com/wp-content/uploads/2023/07/Integral-Edition-Graphical-Boot-300x156.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/Integral-Edition-Graphical-Boot-768x399.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/07/Integral-Edition-Graphical-Boot-500x260.png 500w" sizes="auto, (max-width: 888px) 100vw, 888px" /></a><figcaption class="wp-element-caption">Windows PE?</figcaption></figure>
</div>


<p class="wp-block-paragraph">From here the setup feels very Windows PE.  I suspect it is, but it&#8217;ll continue basically unattended and on it&#8217;s own.  From here you can just boot directly from the hard disk, once it&#8217;s finished installing.  It will prompt for the USB stick again to add all the additional options</p>



<figure class="wp-block-image size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/Integral-Edition-Options.png"><img loading="lazy" decoding="async" width="1024" height="550" src="https://virtuallyfun.com/wp-content/uploads/2023/07/Integral-Edition-Options-1024x550.png" alt="" class="wp-image-12982" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/Integral-Edition-Options-1024x550.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/07/Integral-Edition-Options-300x161.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/Integral-Edition-Options-768x412.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/07/Integral-Edition-Options-500x268.png 500w, https://virtuallyfun.com/wp-content/uploads/2023/07/Integral-Edition-Options.png 1028w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Optional options!</figcaption></figure>



<p class="wp-block-paragraph">I didn&#8217;t know what to exclude or pick, So I just chose them all.</p>



<p class="wp-block-paragraph">It did take about 20 minutes, but at least by the end I did have a very usable XP install.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/Default-Quadro-4000-Driver-on-XP.png"><img loading="lazy" decoding="async" width="696" height="518" src="https://virtuallyfun.com/wp-content/uploads/2023/07/Default-Quadro-4000-Driver-on-XP.png" alt="" class="wp-image-12984" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/Default-Quadro-4000-Driver-on-XP.png 696w, https://virtuallyfun.com/wp-content/uploads/2023/07/Default-Quadro-4000-Driver-on-XP-300x223.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/Default-Quadro-4000-Driver-on-XP-403x300.png 403w" sizes="auto, (max-width: 696px) 100vw, 696px" /></a></figure>



<p class="wp-block-paragraph">Trying the first Quadro Driver I could find, and I got knocked down to 640&#215;480 in 4bit colour.  It sucked.  I don&#8217;t know what the deal was.</p>



<p class="wp-block-paragraph">320.92 is the version that worked for me!</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/Nvidia-Quadro-High-resolution-desktop.png"><img loading="lazy" decoding="async" width="1024" height="581" src="https://virtuallyfun.com/wp-content/uploads/2023/07/Nvidia-Quadro-High-resolution-desktop-1024x581.png" alt="" class="wp-image-12985" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/Nvidia-Quadro-High-resolution-desktop-1024x581.png 1024w, https://virtuallyfun.com/wp-content/uploads/2023/07/Nvidia-Quadro-High-resolution-desktop-300x170.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/Nvidia-Quadro-High-resolution-desktop-768x436.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/07/Nvidia-Quadro-High-resolution-desktop-500x284.png 500w, https://virtuallyfun.com/wp-content/uploads/2023/07/Nvidia-Quadro-High-resolution-desktop.png 1109w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Working Video</figcaption></figure>
</div>


<p class="wp-block-paragraph">With video working, the next step is all the reaming device drivers.  Ohver on Phils Computer Lab, he had mentioned snappy driver installer, but the first link I hit on google was some virus loaded thing.  Luckily since this is a fresh install it wasn&#8217;t at all painful to shove the USB back in and format the machine.  I think I was also spared a lot of damage as it was constantly failing with a &#8220;bcrypt.dll missing&#8221; error.  Saved by being obsolete!</p>



<p class="wp-block-paragraph">Instead, I found the one on <a href="https://sourceforge.net/projects/snappy-driver-installer/" target="_blank" rel="noreferrer noopener">sourceforge.net</a>, and it was working as expected.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/Lenovo-S20-with-all-drivers-loaded.png"><img loading="lazy" decoding="async" width="559" height="409" src="https://virtuallyfun.com/wp-content/uploads/2023/07/Lenovo-S20-with-all-drivers-loaded.png" alt="" class="wp-image-12986" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/Lenovo-S20-with-all-drivers-loaded.png 559w, https://virtuallyfun.com/wp-content/uploads/2023/07/Lenovo-S20-with-all-drivers-loaded-300x219.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/Lenovo-S20-with-all-drivers-loaded-410x300.png 410w" sizes="auto, (max-width: 559px) 100vw, 559px" /></a></figure>
</div>


<p class="wp-block-paragraph">Adding the audio drivers took a few attempts at installing stuff, rebooting, trying the windows auto-detect, rebooting, re-running snappy driver, and a few more reboots, and I got the NVIDIA audio and the built in audio working.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/07/Lenovo-S20-up-and-running.png"><img loading="lazy" decoding="async" width="929" height="405" src="https://virtuallyfun.com/wp-content/uploads/2023/07/Lenovo-S20-up-and-running.png" alt="" class="wp-image-12987" srcset="https://virtuallyfun.com/wp-content/uploads/2023/07/Lenovo-S20-up-and-running.png 929w, https://virtuallyfun.com/wp-content/uploads/2023/07/Lenovo-S20-up-and-running-300x131.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/07/Lenovo-S20-up-and-running-768x335.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/07/Lenovo-S20-up-and-running-500x218.png 500w" sizes="auto, (max-width: 929px) 100vw, 929px" /></a><figcaption class="wp-element-caption">Overkill XP</figcaption></figure>



<p class="wp-block-paragraph">One thing is that some games fail entirely on XP.  While GTA: Vice City had been running on Windows 10, it fails to do anything on XP.  Older games with Win16 setup programs do run but Games like Links LS 1999 fail completely to run.  I think the system has both too many cores, too much RAM, and it&#8217;s just plain too fast.</p>



<p class="wp-block-paragraph">With all the talk of abandoning 8086/286/386 modes of operation, I thought it&#8217;d be a good time to build a box explicitly for 32bit gaming out of cast aside parts.  The Lenovo S20 <a rel="noreferrer noopener" href="https://hothardware.com/reviews/lenovo-thinkstation-s20-workstation" data-type="URL" data-id="https://hothardware.com/reviews/lenovo-thinkstation-s20-workstation" target="_blank">list price was an eye watering $3,645 USD</a>, and the <a rel="noreferrer noopener" href="https://www.techpowerup.com/gpu-specs/quadro-4000.c898#:~:text=Its%20price%20at%20launch,was%201199%20US%20Dollars." target="_blank">Quadro 4000 clocking in at $1,199 USD</a>.   This was not a casual machine for playing <a rel="noreferrer noopener" href="https://uk.webuy.com/product-detail?id=5031366017765&amp;categoryName=pc-games&amp;superCatName=gaming&amp;title=mahjong-escape-ancient-china&amp;referredFrom=boxsearch&amp;queryID=d4612d6ae4e862f8fb09203cc41a5ef2&amp;position=1" target="_blank">Mahjong Escape: Ancient China</a>.  But it&#8217;s kind of funny to know it does.</p>



<p class="wp-block-paragraph">I have to throw some more stuff at it, but one could have only wished for a PC this fast in 2002.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/07/15/installing-windows-xp-on-a-lenovo-s20/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Everyone seems to be losing their minds over the Windows XP Professional Key</title>
		<link>https://virtuallyfun.com/2023/05/26/everyone-seems-to-be-losing-their-minds-over-the-windows-xp-professional-key/</link>
					<comments>https://virtuallyfun.com/2023/05/26/everyone-seems-to-be-losing-their-minds-over-the-windows-xp-professional-key/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 26 May 2023 23:16:35 +0000</pubDate>
				<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[QEMU]]></category>
		<category><![CDATA[virtual networking]]></category>
		<category><![CDATA[Win32]]></category>
		<category><![CDATA[Windows XP]]></category>
		<guid isPermaLink="false">http://virtuallyfun.com/?p=12716</guid>

					<description><![CDATA[algorithm being cracked. But of course, how does that help me? Unironically, I had purchased this for a whopping £4.68 No, really here&#8217;s the receipt. What a bargain! Of course this is a legit copy with a legit key. But &#8230; <a href="https://virtuallyfun.com/2023/05/26/everyone-seems-to-be-losing-their-minds-over-the-windows-xp-professional-key/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">algorithm being cracked.</p>



<p class="wp-block-paragraph">But of course, how does that help me?</p>



<figure class="wp-block-image size-large"><a href="https://archive.org/details/xrmhccp-en" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="494" src="https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-folio-1024x494.jpg" alt="" class="wp-image-12714" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-folio-1024x494.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-folio-300x145.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-folio-768x370.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-folio-500x241.jpg 500w, https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-folio.jpg 1331w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">Unironically, I had purchased this for a whopping £4.68</p>



<figure class="wp-block-image size-full is-resized"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-receipt.png"><img loading="lazy" decoding="async" src="https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-receipt.png" alt="" class="wp-image-12717" width="614" height="177" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-receipt.png 1009w, https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-receipt-300x87.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-receipt-768x222.png 768w, https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-receipt-1000x288.png 1000w, https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-receipt-500x145.png 500w" sizes="auto, (max-width: 614px) 100vw, 614px" /></a></figure>



<p class="wp-block-paragraph">No, really here&#8217;s the receipt.  What a bargain!</p>



<p class="wp-block-paragraph">Of course this is a legit copy with a legit key.  But the online activation servers are all gone, and it looks like I&#8217;d have to call someone asking about my 22 year old copy of Windows, that I&#8217;ll load up and quickly forget.</p>



<p class="wp-block-paragraph">Since I&#8217;m going to use QEMU, 0.90 with pcap support I thought I&#8217;d share the startup options:</p>



<pre class="wp-block-code"><code>set loopback=\Device\NPF_{3DF0EC5D-7FBE-46DF-ACF8-EF5D8679A473}
set vmnet1=\Device\NPF_{3BC364F4-5A15-405D-926C-C594383F0323}
qemu -m 512 -L pc-bios ^
-hda xphome.vmdk ^
-soundhw es1370 ^
-net nic,model=pcnet,macaddr=52:24:00:33:00:01 ^
-net pcap,devicename=%loopback% ^
%1 %2 %3 %4 %5 %6</code></pre>



<p class="wp-block-paragraph">I had high hopes for this thing.  Clearly misplaced ambitions.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-is-an-upgrade.png"><img loading="lazy" decoding="async" width="722" height="423" src="https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-is-an-upgrade.png" alt="" class="wp-image-12715" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-is-an-upgrade.png 722w, https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-is-an-upgrade-300x176.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-is-an-upgrade-500x293.png 500w" sizes="auto, (max-width: 722px) 100vw, 722px" /></a></figure>



<p class="wp-block-paragraph">First up, it&#8217;s an upgrade version.  So that means instead of installing XP I had to waste my time installing NT Workstation 3.51, then installing XP. Yuck. And of course it just want small FAT disks of the 2/4 gigabyte boundary type as it&#8217;s 1994.  Not the bright future of 2002&#8217;s Windows XP.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-bye-to-nt-351.png"><img loading="lazy" decoding="async" width="722" height="423" src="https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-bye-to-nt-351.png" alt="" class="wp-image-12712" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-bye-to-nt-351.png 722w, https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-bye-to-nt-351-300x176.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-bye-to-nt-351-500x293.png 500w" sizes="auto, (max-width: 722px) 100vw, 722px" /></a></figure>



<p class="wp-block-paragraph">I don&#8217;t know why Qemu 0.90 has issues with XP detecting the CD-ROM drive, but yeah that sucked.  I wanted to load up some more insane SNA experiments, but there is no DLC / 802.2 driver for XP Home. wow.</p>



<p class="wp-block-paragraph">At least once it&#8217;s satisfied, we can format the disk as one big happy partition, and we can get on with our lives.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-30-days-to-activate.jpg"><img loading="lazy" decoding="async" width="299" height="136" src="https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-30-days-to-activate.jpg" alt="" class="wp-image-12711"/></a></figure>
</div>


<p class="wp-block-paragraph">Installation is rather uneventful, however we are instantly reminded that we have only 30 days to go. Since we have that nasty CD-ROM issue that means shutting down, and booting back up, but with this fun program on an ISO image, <a href="https://archive.org/details/xp_activate32_202305" target="_blank" rel="noreferrer noopener">xp_activate</a>.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-attempt-at-phone-activation.jpg"><img loading="lazy" decoding="async" width="802" height="627" src="https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-attempt-at-phone-activation.jpg" alt="" class="wp-image-12718" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-attempt-at-phone-activation.jpg 802w, https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-attempt-at-phone-activation-300x235.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-attempt-at-phone-activation-768x600.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-attempt-at-phone-activation-384x300.jpg 384w" sizes="auto, (max-width: 802px) 100vw, 802px" /></a></figure>



<p class="wp-block-paragraph">I did try to make a call, to activate my Windows, but the connection was terrible and I&#8217;m not even sure if these numbers were right.  No I mean I know they didn&#8217;t work.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-phone-activation-failed.png"><img loading="lazy" decoding="async" width="528" height="196" src="https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-phone-activation-failed.png" alt="" class="wp-image-12719" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-phone-activation-failed.png 528w, https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-phone-activation-failed-300x111.png 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-phone-activation-failed-500x186.png 500w" sizes="auto, (max-width: 528px) 100vw, 528px" /></a></figure>
</div>


<p class="wp-block-paragraph">So I did what all legit users end up doing, using the crack for my 21 year old copy of Windows.</p>



<figure class="wp-block-image size-full"><a href="https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-xp_activate32-activated.jpg"><img loading="lazy" decoding="async" width="643" height="364" src="https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-xp_activate32-activated.jpg" alt="" class="wp-image-12709" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-xp_activate32-activated.jpg 643w, https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-xp_activate32-activated-300x170.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/Windows-xp-home-xp_activate32-activated-500x283.jpg 500w" sizes="auto, (max-width: 643px) 100vw, 643px" /></a></figure>



<p class="wp-block-paragraph">And just a few clicks later, it was done.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="802" height="627" src="https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-Activated.jpg" alt="" class="wp-image-12710" srcset="https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-Activated.jpg 802w, https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-Activated-300x235.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-Activated-768x600.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2023/05/windows-xp-home-Activated-384x300.jpg 384w" sizes="auto, (max-width: 802px) 100vw, 802px" /></figure>



<p class="wp-block-paragraph">Windows XP Home is activated.</p>



<p class="wp-block-paragraph">I don&#8217;t know if it&#8217;s even really going to last, I didn&#8217;t try anything else, actually I already deleted it. And the XP folio is back on the bookshelf.</p>



<p class="wp-block-paragraph">Not only is there no DLC, did you know you can&#8217;t uninstall TCP/IP?  At least you can unbind it from your NIC.  While it does have IPX/SPX there is no built in Netware client.  When they said HOME they meant it!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/05/26/everyone-seems-to-be-losing-their-minds-over-the-windows-xp-professional-key/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Not as fun as Win64 Itanium, the earliest AMD64 Windows I can find</title>
		<link>https://virtuallyfun.com/2023/05/03/not-as-fun-as-win64-itanium-the-earliest-amd64-windows-i-can-find/</link>
					<comments>https://virtuallyfun.com/2023/05/03/not-as-fun-as-win64-itanium-the-earliest-amd64-windows-i-can-find/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Wed, 03 May 2023 22:50:57 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[QEMU]]></category>
		<category><![CDATA[Win64]]></category>
		<category><![CDATA[Windows XP]]></category>
		<category><![CDATA[x64]]></category>
		<category><![CDATA[x86_64]]></category>
		<guid isPermaLink="false">http://virtuallyfun.com/?p=12396</guid>

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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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


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


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



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



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/05/03/not-as-fun-as-win64-itanium-the-earliest-amd64-windows-i-can-find/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>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>The REAL Story on Why Space Cadet Pinball Was Removed (ft. Windows on Itanium)</title>
		<link>https://virtuallyfun.com/2021/09/04/the-real-story-on-why-space-cadet-pinball-was-removed-ft-windows-on-itanium/</link>
					<comments>https://virtuallyfun.com/2021/09/04/the-real-story-on-why-space-cadet-pinball-was-removed-ft-windows-on-itanium/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sat, 04 Sep 2021 02:15:41 +0000</pubDate>
				<category><![CDATA[games]]></category>
		<category><![CDATA[itanium]]></category>
		<category><![CDATA[videos]]></category>
		<category><![CDATA[Win64]]></category>
		<category><![CDATA[Windows XP]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=11303</guid>

					<description><![CDATA[This video is from a friend of mine NCommander. For anyone interested in early 64bit versions of Windows, floating point precision or what happened to pinball check out this video! Totally worth the watch! You can find more From NCommander &#8230; <a href="https://virtuallyfun.com/2021/09/04/the-real-story-on-why-space-cadet-pinball-was-removed-ft-windows-on-itanium/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">This video is from a friend of mine NCommander. For anyone interested in early 64bit versions of Windows, floating point precision or what happened to pinball check out this video!</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="The REAL Story On Why Space Cadet Pinball Was Removed (ft. Windows on Itanium)" width="584" height="329" src="https://www.youtube.com/embed/3EPTfOTC4Jw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">Totally worth the watch!</p>



<p class="wp-block-paragraph">You can find more From NCommander on his <a href="https://www.youtube.com/channel/UCWyrVfwRL-2DOkzsqrbjo5Q" target="_blank" rel="noreferrer noopener">YouTube channel</a>, and support him on <a href="https://www.patreon.com/ncommander/posts" target="_blank" rel="noreferrer noopener">Patreon</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2021/09/04/the-real-story-on-why-space-cadet-pinball-was-removed-ft-windows-on-itanium/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Anglofying &#038; running Japanese Lemmings for Windows</title>
		<link>https://virtuallyfun.com/2020/03/19/anglofying-running-japanese-lemmings-for-windows/</link>
					<comments>https://virtuallyfun.com/2020/03/19/anglofying-running-japanese-lemmings-for-windows/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Thu, 19 Mar 2020 00:22:23 +0000</pubDate>
				<category><![CDATA[games]]></category>
		<category><![CDATA[Japanese software]]></category>
		<category><![CDATA[microsoft windows]]></category>
		<category><![CDATA[Win32]]></category>
		<category><![CDATA[Win32s]]></category>
		<category><![CDATA[Windows 10]]></category>
		<category><![CDATA[Windows XP]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10170</guid>

					<description><![CDATA[On one of my later trips I picked up this fun title, Lemmings! And looking at the back of the box, what fun it contains! One interesting thing about 1995, is that with the rise of Windows 95, this marked &#8230; <a href="https://virtuallyfun.com/2020/03/19/anglofying-running-japanese-lemmings-for-windows/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"> On one of my later trips I picked up this fun title, Lemmings! </p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="665" height="900" src="https://virtuallyfun.com/wp-content/uploads/2020/03/P_20200316_194631.jpg" alt="" class="wp-image-10171" srcset="https://virtuallyfun.com/wp-content/uploads/2020/03/P_20200316_194631.jpg 665w, https://virtuallyfun.com/wp-content/uploads/2020/03/P_20200316_194631-222x300.jpg 222w" sizes="auto, (max-width: 665px) 100vw, 665px" /></figure></div>



<p class="wp-block-paragraph">And looking at the back of the box, what fun it contains!</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="617" height="865" src="https://virtuallyfun.com/wp-content/uploads/2020/03/P_20200316_194637.jpg" alt="" class="wp-image-10174" srcset="https://virtuallyfun.com/wp-content/uploads/2020/03/P_20200316_194637.jpg 617w, https://virtuallyfun.com/wp-content/uploads/2020/03/P_20200316_194637-214x300.jpg 214w" sizes="auto, (max-width: 617px) 100vw, 617px" /><figcaption>Support PC-98, Epsons, IBM&#8217;s, IBM PC/AT.. Probably FM Towns as well</figcaption></figure>



<p class="wp-block-paragraph">One interesting thing about 1995, is that with the rise of Windows 95, this marked the end of the specialized PC market in Japan.  Just as WING/Direct X basically killed off the DIY driver/extender environment on MS-DOS, by being able to abstract the hardware it removed any meaningful difference between an EPSON PC vs a PC-98, FM Towns, or even the lowly IBM AT/386.</p>



<p class="wp-block-paragraph">This being a Win32 includes both WING &amp; Win32s.  A perfect snapshot of an early Win32 commercial game circa 1995, as you needed to cater to that massive Windows 3.1 install base, although so many were rushing to Windows 95.  Naturally this also means that the setup program is a Win16 app, once more again to preserve that bridge of the Windows 3.1 &amp; Windows 95 world.</p>



<p class="wp-block-paragraph">Well the obvious thing to do is just install it on a legacy 32bit OS, and what better than Windows XP?</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="770" src="https://virtuallyfun.com/wp-content/uploads/2020/03/Lemmings-on-XP-1024x770.jpg" alt="" class="wp-image-10172" srcset="https://virtuallyfun.com/wp-content/uploads/2020/03/Lemmings-on-XP-1024x770.jpg 1024w, https://virtuallyfun.com/wp-content/uploads/2020/03/Lemmings-on-XP-300x226.jpg 300w, https://virtuallyfun.com/wp-content/uploads/2020/03/Lemmings-on-XP-768x577.jpg 768w, https://virtuallyfun.com/wp-content/uploads/2020/03/Lemmings-on-XP-399x300.jpg 399w, https://virtuallyfun.com/wp-content/uploads/2020/03/Lemmings-on-XP.jpg 1027w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Lemmings happily running under Windows XP via VMWare.</figcaption></figure></div>



<p class="wp-block-paragraph">Now to run it on something like Windows 10, it&#8217;s just a matter of copying the WINLEMM.INI into %sysroot%, along with placing a copy of WING32.DLL into the %sysroot%\SysWOW64 directory and you are good to go!</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="339" height="363" src="https://virtuallyfun.com/wp-content/uploads/2020/03/lemmings-about.png" alt="" class="wp-image-10173" srcset="https://virtuallyfun.com/wp-content/uploads/2020/03/lemmings-about.png 339w, https://virtuallyfun.com/wp-content/uploads/2020/03/lemmings-about-280x300.png 280w" sizes="auto, (max-width: 339px) 100vw, 339px" /><figcaption>Japanese Lemmings on English Windows 10</figcaption></figure></div>



<p class="wp-block-paragraph">Sadly the character encoding in Windows is still really lacking and doesn&#8217;t render all that great.  However that had me thinking as almost a decade ago I did find <a href="/wordpress/2011/04/03/lemmings-demo-for-win32s/">a demo of Lemmings</a> for <a href="https://archive.org/details/WLEMMM">Windows</a>.  Could it be possible to just overlay the executables &amp; DLL&#8217;s to produce an English commercial version?</p>



<p class="wp-block-paragraph">Surprisingly the answer is yes.  I wasn&#8217;t sure what to expect, but it&#8217;s as simple as that!</p>



<p class="wp-block-paragraph">The game is mostly playable, some parts are just coded to run as fast as possible, as no doubt nobody was imagining 1+ Ghz machines.  So the intro, warp &amp; suicide are almost instant.</p>



<p class="wp-block-paragraph">It&#8217;s something to keep the kids entertained for a day in recent events.  It&#8217;s been a <em>LONG </em>CNY.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2020/03/19/anglofying-running-japanese-lemmings-for-windows/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Origin of the Windows XP &#8216;Bliss&#8217; wallpaper</title>
		<link>https://virtuallyfun.com/2018/08/26/origin-of-the-windows-xp-bliss-wallpaper/</link>
					<comments>https://virtuallyfun.com/2018/08/26/origin-of-the-windows-xp-bliss-wallpaper/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sun, 26 Aug 2018 22:25:12 +0000</pubDate>
				<category><![CDATA[videos]]></category>
		<category><![CDATA[Windows XP]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=8783</guid>

					<description><![CDATA[You&#8217;ve probably seen this iconic image everywhere at one point.Â  This isÂ Charles O&#8217;Rear&#8217;s picture simply titled &#8216;bliss&#8217; that was bought by Microsoft in 2000 and used as the default wallpaper for Windows XP. I found this interview of him recently &#8230; <a href="https://virtuallyfun.com/2018/08/26/origin-of-the-windows-xp-bliss-wallpaper/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image"><img decoding="async" src="https://virtuallyfun.com/wp-content/uploads/2018/08/bliss.jpg" alt="" class="wp-image-8784"/><figcaption>Charles O&#8217;Rear&#8217;s Bliss</figcaption></figure>



<p class="wp-block-paragraph">You&#8217;ve probably seen this iconic image everywhere at one point.Â  This isÂ Charles O&#8217;Rear&#8217;s picture simply titled &#8216;bliss&#8217; that was bought by Microsoft in 2000 and used as the default wallpaper for Windows XP.</p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube">
https://www.youtube.com/watch?v=AVXY8OEZAEQ
<figcaption><em>Interview with Charles</em></figcaption></figure>



<p class="wp-block-paragraph">I found this interview of him recently and thought it was interesting enough for a quick post.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2018/08/26/origin-of-the-windows-xp-bliss-wallpaper/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>MIDI Mayhem on Windows 10</title>
		<link>https://virtuallyfun.com/2016/09/28/midi-mayhem-on-windows-10/</link>
					<comments>https://virtuallyfun.com/2016/09/28/midi-mayhem-on-windows-10/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Wed, 28 Sep 2016 10:02:59 +0000</pubDate>
				<category><![CDATA[DOSBox]]></category>
		<category><![CDATA[microsoft windows]]></category>
		<category><![CDATA[MIDI]]></category>
		<category><![CDATA[Windows 10]]></category>
		<category><![CDATA[Windows XP]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=6439</guid>

					<description><![CDATA[So I know it&#8217;s &#8216;probably&#8217; the super cheap generic USB to MIDI dongal I got on the cheap, but it just doesn&#8217;t work on Windows 10. Using DOSBox, I get the following output when cycling between devices on the console: &#8230; <a href="https://virtuallyfun.com/2016/09/28/midi-mayhem-on-windows-10/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>So I know it&#8217;s &#8216;probably&#8217; the super cheap generic USB to MIDI dongal I got on the cheap, but it just doesn&#8217;t work on Windows 10.</p>
<p>Using DOSBox, I get the following output when cycling between devices on the console:</p>
<p style="padding-left: 60px;">MIDI:Opened device:win32<br />
MIDI:win32 selected Microsoft GS Wavetable Synth<br />
MIDI:Opened device:win32<br />
MIDI:win32 selected USB2.0-MIDI<br />
MIDI:Opened device:none<br />
MIDI:win32 selected MIDIOUT2 (USB2.0-MIDI)<br />
MIDI:Opened device:none</p>
<p>As you can see it clearly can see the USB device, but when it opens the device it fails. And yes I&#8217;ve tried Administrator. Â And for the hell of it, I fire up Windows XP on VMWare, connect the USB dongal, and amazingly:</p>
<p style="padding-left: 60px;">MIDI:Opened device:win32<br />
MIDI:win32 selected USB Audio Device<br />
MIDI:Opened device:win32<br />
MIDI:win32 selected USB Audio Device [2]<br />
MIDI:Opened device:win32<br />
MIDI:win32 selected Microsoft GS Wavetable SW Synth<br />
MIDI:Opened device:win32</p>
<p>Yes, I can open the out port just fine. Â So now I run a virtualizer to run my emulator to drive a physical peripheral&#8230; Ugh. Â Has MIDI been this messed up all along and I never noticed?</p>
<p>Oh yeah, the GS Wavetable Synth works fine, as did MUNT before I uninstalled it, thinking it was somehow interfering with anything.</p>
<p>I know I&#8217;m using this fine device, theÂ QinHeng USB MIDI adapter, which apparently is notorious crap, but my recently acquired Yamaha MU 80, works fine with it on Windows XP.</p>
<p><div id="attachment_6441" style="width: 461px" class="wp-caption aligncenter"><a href="https://virtuallyfun.com/wp-content/uploads/2016/09/DHL-Free-Shipping-100pcs-Lot-2M-6Ft-Keyboard-to-PC-USB-MIDI-Interface-Adapter-Cable-Supports.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6441" class="size-full wp-image-6441" src="https://virtuallyfun.com/wp-content/uploads/2016/09/DHL-Free-Shipping-100pcs-Lot-2M-6Ft-Keyboard-to-PC-USB-MIDI-Interface-Adapter-Cable-Supports.jpg" alt="QinHeng USB MIDI adapter" width="451" height="453" /></a><p id="caption-attachment-6441" class="wp-caption-text">QinHeng USB MIDI adapter</p></div></p>
<p>Ugh.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2016/09/28/midi-mayhem-on-windows-10/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Retro computing for $99</title>
		<link>https://virtuallyfun.com/2016/09/08/retro-computing-for-99/</link>
					<comments>https://virtuallyfun.com/2016/09/08/retro-computing-for-99/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Thu, 08 Sep 2016 05:24:50 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[retro hardware]]></category>
		<category><![CDATA[Windows XP]]></category>
		<category><![CDATA[x64]]></category>
		<category><![CDATA[x86_64]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=6387</guid>

					<description><![CDATA[I was cruising around New Capital Computer Plaza, looking for some cisco console cables, and I saw a bunch of old Xeon desktop computers for sale.  Prices were in the 250-500 USD range, which seemed pricey to me.  And keeping &#8230; <a href="https://virtuallyfun.com/2016/09/08/retro-computing-for-99/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>I was cruising around <a href="https://www.google.com.hk/maps/place/Yat+Tung+Computer+Co.,+Unit+127,+1%2FF,+New+Capital+Computer+Plaza,+85-95+Un+Chau+St,+Sham+Shui+Po/@22.3329152,114.1625069,3a,75.7y,243.66h,94.63t/data=!3m4!1e1!3m2!1sEbh7U3k003QGjyLbQMDwpA!2e0!4m5!1m2!2m1!1snew+capital+computer+plaza!3m1!1s0x3404074b5186cbcd:0x8e17df773797a8eb">New Capital Computer Plaza</a>, looking for some cisco console cables, and I saw a bunch of old Xeon desktop computers for sale.  Prices were in the 250-500 USD range, which seemed pricey to me.  And keeping in mind that my desktop is already a Xeon E3-1230, it did seem kind of pointless.  But then I saw this Dell Precision 490 for about $99 USD.</p>
<div id="attachment_6388" style="width: 2944px" class="wp-caption aligncenter"><a href="https://virtuallyfun.com/wp-content/uploads/2016/09/IMG_20160907_2211414.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6388" class="wp-image-6388 size-full" src="https://virtuallyfun.com/wp-content/uploads/2016/09/IMG_20160907_2211414.jpg" alt="Dell Precision 490" width="2934" height="5216" /></a><p id="caption-attachment-6388" class="wp-caption-text">Dell Precision 490</p></div>
<p>Great, so what are the general specs?</p>
<p>Well, the &#8216;nice&#8217; thing about Dell is that they keep all their old stuff online, so looking at the <a href="http://euro.dell.com/ed/en/corp/Desktops/precn_490/pd.aspx?refid=precn_490&amp;s=corp&amp;~section=specs#tabtop">specsheet</a> we can see It&#8217;s not a bad machine for something circa 2006.  Even archive.org has the <a href="http://web.archive.org/web/20060721135159/http://configure.us.dell.com/dellstore/config.aspx?c=us&amp;cs=555&amp;l=en&amp;oc=MLB1732&amp;s=biz">old pricing online too</a>!</p>
<p>Mine came with a Xeon 5160, 8GB of ram, 250 GB disk, and an <a href="https://www.techpowerup.com/gpudb/b1482/powercolor-hd-4850-pcs-1-gb">ATI HD 4850</a></p>
<ul>
<li>Dell Precision Workstation 490 Desktop &#8211; 32bit $2,852</li>
<li>Dual Core Intel® Xeon® Processor 5160 3.00GHz, 4MB L2,1333 [add $930]</li>
<li>4GB, DDR2 SDRAM FBD Memory, 533MHz, ECC (4 DIMMS) [add $570]</li>
<li>4GB, DDR2 SDRAM FBD Memory, 533MHz, ECC (4 DIMMS) [add $570]</li>
<li>250GB SATA 3.0Gb/s,7200 RPM NCQ Hard Drive with 8MB DataBurst Cache<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> [add $90]</li>
</ul>
<p>By my calculations this machine was about $5,012 USD, and that isn&#8217;t including the after market video card, which would be about $<a href="https://www.techpowerup.com/reviews/Powercolor/HD_4850_PCS/">180 USD</a> when it was new in 2008, bringing the total MSRP on this thing to $5,192 USD!</p>
<p>Of course it is now 2016, and this machine is 10 years old, with an 8 year old video card.  Also of interest is that it came licensed for Windows XP x64, which was the first publicly available AMD64 OS from Microsoft.  Unlike traditional Windows XP, this 64bit version is actually built around Windows server 2003.</p>
<p>The computer came with a pirated copy of Windows 7, which I wanted to promptly remove.  I have an old MSDN copy of Windows XP x64 that I wanted to install, however the optical drive is broken, and I needed to install from USB.  Thankfully even though this machine is old, it can boot from USB devices.  The first step was to download <a href="http://www.winsetupfromusb.com/downloads/">WinSetupFromUSB 1.2</a> to get XP onto a USB stick.  Naturally once I had booted from USB, the disk controller wasn&#8217;t supported.  The BIOS screen revealed that it was a:</p>
<p><em>Serial ATA AHCI</em> BIOS, Version <em>iSrc 1.02.25</em> 07222007. Copyright (c) 2003-2006 Intel Corporation. Copyright (c) 2003-2006 Dell, Inc. Controller &#8230;</p>
<p>This translated into the Intel iaStor product, and I was able to slipstream in the last version from 2009, <a href="https://downloadcenter.intel.com/download/17882/Intel-Matrix-Storage-Manager?product=55005">8.9.0.123</a> into the USB by using <a href="http://www.nliteos.com/">nlite</a>.</p>
<p>I have to say that once I had removed the gratuitous pirated Chinese Windows 7, and installed XP that this machine was pretty damned snappy!  As always I updated to <a href="http://vpsland.superglobalmegacorp.com/install/Windows2003-x86_64/WindowsServer2003.WindowsXP-KB914961-SP2-x64-ENU.exe">service pack 2</a>.</p>
<p>The onboard NIC is a <a href="https://www.broadcom.com/support/ethernet-nic-netlink-57xx">Broadcom NetXtreme 57xx gigabit NIC</a>, which unlike the &#8216;gigabit&#8217; NIC on my newer desktop, this one actually works at 1Gb.</p>
<p>With Windows XP installed, I went to the AMD/ATI site, and found the <a href="http://support.amd.com/en-us/download/desktop/legacy?product=legacy2&amp;os=Windows%20XP%20-%2064&amp;RenderOnServer=true">download for the HD 4xxx series</a>, and went ahead and installed Steam.</p>
<p>I have to say that <a href="http://store.steampowered.com/app/220/">Half-Life 2</a> runs GREAT.  According to it&#8217;s onboard FPS counter I was getting anywhere around 60-180 FPS.  Pretty awesome.  <a href="http://store.steampowered.com/app/22370/">Fallout 3</a> runs pretty snappy too.  I tried <a href="http://store.steampowered.com/app/238010/">Deus Ex: Human Revolution</a>, and much to my surprise this vintage 2011 game runs on my 2006 Windows XP x64 setup.</p>
<p>What about the overall internet experience?  Well this being Windows XP, You are pretty limited by the traditional browsers.  Internet Explorer 6 is the default browser which to say it&#8217;s dated is an understatement.  I prefer <a href="http://vpsland.superglobalmegacorp.com/install/Windows2003-x86_64/IE7-WindowsServer2003-x64-enu.exe">Internet Explorer 7</a> over 6, but they are both so old it doesn&#8217;t matter. <a href="http://vpsland.superglobalmegacorp.com/install/Windows2003-x86_64/IE8-WindowsServer2003-x64-ENU.exe">Internet Explorer 8</a> is also an option. The last version of Google Chrome to support Windows XP was 49.0.2623.75.  Chrome 49 plays youtube just fine, <a href="http://scriptedamigaemulator.net/">Scripted Amiga</a> is a little pokey, but does run.</p>
<p>And how does this thing compare to my normal desktop?  <a href="http://browser.primatelabs.com/geekbench2/compare/2610543/2610545">Running Geekbench 2</a>, I get a score of 3396 vs 10864.  Now keep in mind this $99 machine only has a dual core processor, while my newer machine has a quad core + hyper threading CPU.  <a href="http://browser.primatelabs.com/geekbench2/compare/2610543/390318">An interesting comparison is with the Xeon E5320 CPU</a>, with the Dell eking out a victory.</p>
<p>Installing additional software was possible via <a href="https://www.elby.ch/en/products/vcd.html">Virtual Clone Drive</a>, while I did have ISO images of stuff I&#8217;ve had physical media of in the past, a broken drive wasn&#8217;t going to help me read anything.</p>
<p>I didn&#8217;t activate it, but Windows 10 will run on this machine as well.  I&#8217;ll probably upgrade by getting a second JD210 heat sink (I already found another 5160 processor for $10)</p>
<p>It&#8217;s a great machine for sub $100.  I&#8217;d hate to have spent over $5,000 on this thing, but it&#8217;s kind of cool to see that a 10 year old machine like this can still be sort of usable.  Of course updating the software will certainly go a long way in making it really usable.</p>


<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2016/09/08/retro-computing-for-99/feed/</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
			</item>
	</channel>
</rss>
