Gravis Ultrasadhttps://gekk.info/blog/main/2019-04-04T19:45:00-07:00Installing Caldera OpenLinux 1.3 on qemu2019-04-03T13:07:00-07:002019-04-04T12:29:00-07:00gravislizardtag:gekk.info,2019-04-03:/blog/main/installing-caldera-openlinux-13-on-qemu.htmlCollected notes and process on installing an ancient Linux for no good reason
<div>
<p>I saw a picture of Caldera OpenLinux somewhere:</p>
<p>
<a href="/uimages/1554322178801.png">
<img src="/uimages/1554322178801.png" style="width: 579px;" class="fr-fic fr-dib" />
</a>
</p>
<p>I was immediately intrigued because it looks like nothing I'd seen before and I wanted a closer look. The source post was: <a href="https://virtuallyfun.com/wordpress/2013/03/27/caldera-open-linux/">https://virtuallyfun.com/wordpress/2013/03/27/caldera-open-linux/</a></p>
<p>To save some time on your part: There's nothing particularly special about this version of Linux. Most of the software is typical of any 1997 release, so an early Red Hat would be mostly the same in practical terms. The UI that fascinated me is just fvwm (hence the Motif look) running a program from Caldera called Looking Glass, which provides a sort of Win 3.x Program Manager interface. The shine wears off real quick, as is typical for old Linuces, but since I put in the effort to get it going, I thought I'd share, so you can spin your wheels a little less than I did if you want to try this out for kicks.</p>
<p>The original post I linked has some useful info but the link to the fixed copy of X11 there is no longer valid, and the author didn't cover some of the tweaking needed to get this working, so I'll include help on those issues. I also uploaded ISOs of the <a href="https://archive.org/details/OpenLinux1.3" rel="noopener noreferrer" target="_blank">entire CD set to Internet Archive</a>. I had found them on someone's Google Drive, and they include the source disc which you'll need if you want to do any of the bullshit I had to do to get this working.</p>
<h1>Why Bother</h1>
<p>Because 90s Linux is downright fun to work with compared to modern Linux and it's nice to spend a few hours doing stuff with a linux that isn't constantly requiring you to download shit.</p>
<p>I was able to <em>compile X11 from a base install of the OS without installing any libraries from CD let alone the internet</em>. Try that on Ubuntu.</p>
<h1>Why Qemu</h1>
<p>I initially installed this on Virtualbox, which ran it great for the most part, but the graphics card is unique to Virtualbox so you can't get anything better than 256 color VGA which won't run basically anything. Maybe you could compile the linux vbox graphics driver; I haven't tried that yet but I expect it to be a shitshow if possible at all.</p>
<p>Qemu on the other hand has the option to emulate a Cirrus Logic 5446, which this version of X <em>does</em> have support for... if you compile it in. Unfortunately the stock included binary DOESN'T have this support, but you can compile it from the XFree86 on the source disc, and it's... not that painful, surprisingly.</p>
<p>Notably, I have <strong>not</strong> gotten networking to work yet. Will update if I figure it out, but I did at least determine that qemu emulates an RTL8139, which this linux <em>does</em> have support for and <em>does</em> recognize if you enable it, but I can't get traffic to pass so I've left that command out for now. I think it's just because my Windows host OS is dumb as hell about networking, this would probably work great on a linux host.</p>
<h1>Install</h1>
<p>I'll only cover installing the OS on qemu in abstract because: I didn't. I installed it on virtualbox, discovered it wouldn't work with that graphics card, then moved the disk image to qemu. If you don't know qemu... oof. I don't have a lot of great news for you with regards to qemu's usability but here's some tips.</p>
<p>I recommend at least qemu 2.12.0.</p>
<p>This is my current qemu command:</p>
<pre>E:\Emulators\qemu\qemu-system-x86_64.exe -m 128.000 -vga cirrus -boot order=d -name Caldera-qemu -nic user,model=rtl8139  -hda G:\VMs\Caldera\Caldera-qemu-big.vdi -L e:\emulators\qemu</pre>
<p>That is:</p>
<ul>
<li>Start qemu's x86_64 emulator</li>
<li>128mb of ram</li>
<li>cirrus graphics</li>
<li>boot from cdrom first (if present)</li>
<li>name the machine Caldera-qemu</li>
<li>create rtl8139 network card (doesn't work properly - see above)</li>
<li>set hard drive image</li>
</ul>
<p>To create that disk image, you want to do something like</p>
<pre>qemu-img create -f vdi caldera-qemu-big.vdi 4096M</pre>
<p>I recommend <strong>at least</strong> two gigs - the "full install" is nearly a gig and you can't do <strong>anything</strong> with a disk smaller than two gigs.</p>
<p>To get the install started, add this to the qemu CLI command:</p>
<pre>-cdrom <path_to_qemu.iso></pre>
<p>Hit enter at the boot prompt and follow the directives; you'll need a little Linux experience here I'm afraid. I recommend the full install, and you should manually create one partition of 3800M and a swap partition filling the rest of the drive.</p>
<h2>LILO Bootloader Note</h2>
<p>For some reason LILO failed to install correctly for me, I'm not sure why. So after install is complete, the installer will force boot you onto hda1 and everything will look fine, but this is a trap; if you reboot, the machine will hang.</p>
<p>If you do this, you can use something like PLoP on Hirem's Boot CD to get back into the installed OS.</p>
<p>To fix this, I just had to edit /etc/lilo.conf and change the boot line to <strong>boot = /dev/hda</strong>, then type <strong>lilo</strong> to install the bootloader to the MBR. Weird but ok.</p>
<h1>Getting X Working</h1>
<p>At this point you should be booted up into a functioning system and logged in as root.</p>
<p>If you just want to make X Go, you can probably type startx and get the 8bpp VGA mode. It's cute but most stuff won't run, so let's move on.</p>
<p>You need <strong>XFree86 with cirrus support</strong>. To make this easier, I have compiled this for you and put the files into <a href="https://archive.org/details/XFree863.3.2Caldera" rel="noopener noreferrer" target="_blank">an archive</a>. I'm not sure if that'll work, but you can try it (with extra steps to work around the lack of network access):</p>
<ul>
<li>Download XFree86-3.2.2.tar.gz</li>
<li>Install the PowerISO trial version (or another ISO manipulator)</li>
<li>Stuff this tgz into a CD ISO</li>
<li>Mount the ISO in qemu</li>
<li>Copy the tgz from /mnt/cdrom to ~</li>
<li>Extract the tgz</li>
<li>cd into XFree86-3.2.2</li>
<li>make install</li>
</ul>
<p>Yeah, you don't need to configure or make, because I gave you the precompiled version. This should work perfectly because we're literally running identical OSes; make install just copies the files to the right places. If this doesn't work, do a <strong>make clean</strong>, then <strong>make World</strong> (there is no configure step); it will take a good half hour to recompile. If <em>this </em>doesn't work, see "compiling X from source."</p>
<h2>Compiling X from Source</h2>
<p>Ugh okay none of the above worked or you want to do things the arcane way or you want to change some <em>other</em> aspect of the build. Sure ok</p>
<ul>
<li>Mount the <strong>source</strong> CD ISO</li>
<li>cd /mnt/cdrom/Packages/SRPMS/</li>
<li>rpm -ivh XFree86-3.3.2-1.src.rpm</li>
<li>rpm -ivh XFree86-contrib.-3.3.2-1.src.rpm</li>
<li>rpm -ivh XFree86-fonts-3.3.2-2.src.rpm</li>
<li>rpm -ivh XFree86-server-3.3.2-1.src.rpm</li>
</ul>
<p>Now you have a bunch of tgzs in /usr/src/OpenLinux/SOURCES</p>
<ul>
<li>cd to that folder</li>
<li>tar zxf all those tgzs</li>
<li>mkdir XFree86-3.3.2</li>
<li>mv xc XFree86-3.3.2/</li>
<li>cd XFree86-3.3.2</li>
<li>patch -p0 -E < ../3.3.2-patch1</li>
<li>patch -p0 -E < ../3.3.2-patch2</li>
</ul>
<p>Now you're patched up and ready to build</p>
<ul>
<li>make World</li>
<li>make install</li>
</ul>
<p>That's it. You're done. You could probably change other things before doing the make but I don't know anything about that.</p>
<h1>X Configuration</h1>
<p>At this point X will run in 8bpp VGA and won't do you much good. <a href="/misc/XF86Config">Here's an XF86Config</a> that should work (put it in /etc/XF86Config), or you can run the configurator yourself. Here's what <strong>I</strong> did to get mine working, but frankly this whole thing is arcane as hell and there are probably better ways to handle it.</p>
<ul>
<li>Run <strong>XF86Setup</strong></li>
<li>Tell it you <strong>don't</strong> want to use a previous config.</li>
<li>X should start and give you the config interface</li>
<li>For the <strong>card</strong>, select <strong>Cirrus Logic GD844x</strong></li>
<li>Click <strong>Detailed Setup</strong></li>
<li>At the bottom of the "Additional lines to add to Device section..." add:<ul><li><strong>Option "noaccel"</strong></li><li><strong>Option "no_bitblt"</strong></li></ul></li>
<li>Set <strong>Video RAM</strong> to <strong>4Meg</strong></li>
<li>It should look like this:<br /><a href="/uimages/2019-04-04 09_56_43-QEMU (Caldera-qemu).png"><img src="/uimages/2019-04-04 09_56_43-QEMU (Caldera-qemu).png" style="width: 467px;" class="fr-fic fr-dib" /></a></li>
<li>For the <strong>Monitor</strong>, select <strong>Multi-frequency that can do 1280x1024 @ 60hz...</strong><strong><br /></strong></li>
<li>For the <strong>Modeselection</strong>, select <strong>1024x768</strong> and<strong> 24bpp</strong><ul><li>I've gotten 32bpp to work a couple times but I can't replicate it</li></ul></li>
<li>Click <strong>Done</strong> </li>
<li>It should restart into a working X server at 1024x768 and you can now save the config</li>
<li>Now run <strong>startx</strong></li>
</ul>
<p>Now you should have a working X server at 1024x768x24! Have fun!</p>
<p>Finally, the make install blew away the GUI config that we came here for in the first place. To fix that, edit /etc/X11/xinit/xinitrc, comment out everything after "start some nice programs", and add <strong>fvwm</strong> on a new line. Now you can startx and get the full experience.</p>
<p>
<a href="/uimages/1554400935726.png">
<img src="/uimages/1554400935726.png" style="width: 677px;" class="fr-fic fr-dib" />
</a>
</p>
<h1>Networking</h1>
<p>As noted, I can't get networking to work, but I think it's because of my host OS. I <em>can</em> get the ethernet device to show up, but it's weird compared to modern linuces, so here's the process:</p>
<p><strong>Important note to avoid hearing damage:</strong> When I installed the network card driver, it did something to the PCI interrupt timer, and promptly the PC speaker started howling and would not stop. I had to mute qemu. Be aware that this might happen.</p>
<ul>
<li>First, you need to manually enable the kernel module.<ul><li>During runtime, you can type <strong>insmod rtl8139</strong></li><li>To get it to start at boot:<ul><li>Go to /etc/modules/2.0.35/</li><li>Edit the appropriate module file. I believe this is the one beginning with "<strong>#1 Wed Aug</strong>" but edit both if you're uncertain</li><li>Add <strong>rtl8139</strong> to the end</li></ul></li></ul></li>
<li>Type <strong>lisa</strong> to launch the setup program<ul><li>As far as I can tell LISA is a Caldera exclusive app, the sort of thing that actually distinguished distributions back in the day before everything kind of blended together</li><li>Select <strong>System Configuration</strong></li><li><strong>Network Configuration</strong></li><li><strong>Network Access</strong></li><li><strong>Configure Network Card</strong></li><li>Follow the prompts</li><li>Repeat for <strong>Enter Router</strong> to set up your default gateway</li></ul></li>
</ul>
<p>I don't know what the process is to get DHCP working.</p>
<h1>Looking Glass</h1>
<p>
<a href="/uimages/1554406033355.png">
<img src="/uimages/1554406033355.png" style="width: 553px;" class="fr-fic fr-dib" />
</a>
<br />
</p>
<p>The software I did all this to get access to is, unsurprisingly, not special or interesting in the end. Looking Glass itself is basically a Program Manager / Explorer with mystery meat navigation (there's no tooltips on the meaningless button icons).</p>
<p>If you hit this button:</p>
<p><a href="/uimages/1554406057966.png"><img src="/uimages/1554406057966.png" style="width: 134px;" class="fr-fic fr-dib" /></a>you'll get the toolbar editor, which will tell you the meaning of the buttons.</p>
<p>Selecting "PowerUser" from the Layouts menu will enable almost all the buttons. None of them do much of interest.</p>
<p>Left click and hold on the desktop to get the program menu. Explore away.</p>
<p>I'd be surprised if there's anything in here that isn't in modern linuces. Xmountains is very nice to look at, for what it's worth.</p>
</div>
PC to Apple II Joystick Adapter2019-04-02T21:15:00-07:002019-04-04T19:45:00-07:00gravislizardtag:gekk.info,2019-04-02:/blog/main/pc-to-apple-ii-joystick-adapter.htmlAdapting a PC joystick to the Apple IIc / IIgs is trivial if you have some basic components. Here are plans for doing so.
<div>
<p>I learned what I needed for this project from here: <a href="http://apple2.org.za/gswv/a2zine/GS.WorldView/Resources/ARTICLES/A2.to.PC.Joystick.Conversion.ht">http://apple2.org.za/gswv/a2zine/GS.WorldView/Resources/ARTICLES/A2.to.PC.Joystick.Conversion.ht</a></p>
<p>However, since that set of instructions is pretty primitive, I had a hard time conceptualizing it in my head, and it requires modifying the joystick - which is both distasteful and limiting. Decent or period-appropriate PC joysticks are beginning to become somewhat rare, and I'd rather not limit myself to just a single stick, when I could have the entire pantheon:</p>
<p>
<a href="/uimages/1554265297858.png">
<img src="/uimages/1554265297858.png" style="width: 455px;" class="fr-fic fr-dib" />
</a>
</p>
<p>I'd love to hook a racing wheel up to my Apple, so a converter box was the obvious choice.</p>
<p>I should note that this only applies to Apples with the DE-9 joystick plug, such as the IIc and IIgs; the older DIP-socket-style ones I know nothing about, since I don't own one of those machines. As far as I know it's just a change of pinout on the connector.</p>
<h1>Disclaimer</h1>
<p>I'm not much of an EE. This might smoke your Apple II by consuming too much current through the joystick port. I don't think this is likely, since the stock joystick - as far as I can <em>tell</em> from the official system documentation - uses simple switch closures with no extra resistors to limit current. But I don't <em>have</em> one of those (they're $80, fuck ebay and its STEVE JOBS RARE LQQK bullshit) so I don't know for sure.</p>
<p>There are more sophisticated looking prebuilt adapters you can buy for $50 on the internet, which look like they were made by real EEs and are probably safer. Build this at your own risk.</p>
<h1>Bill Of Materials</h1>
<ul>
<li>1 perfboard with copper pads, at least 2x2</li>
<li>2 x PNP transistor (I used 2N3906; I think just about anything will work)</li>
<li>2 x 1kohm resistor</li>
<li>1 female DA15 socket (I desoldered one from an old sound card and bent the pins to fit the perfboard)</li>
<li>1 female DE9 plug</li>
<li>DE9 male-male cable</li>
<li>Assorted bits of wire</li>
</ul>
<p>I didn't have all this so I just soldered some wires to my board and attached them directly to a DE9 plug. I don't recommend this approach; they will break off the board eventually. Get a DE9 socket, bend the pins to fit the perfboard and you'll have a much more solid unit.</p>
<h1>Principle</h1>
<p>Any "digital" PC stick will be useless here, naturally. You'll need one that just has buttons and potentiometers in it, no chips.</p>
<p>The axes convert over trivially, they're just potentiometers of roughly the same value as the Apple sticks used. If we were just converting axes there'd be no need for circuitry, it'd just be a pin-to-pin converter.</p>
<p>The buttons are what give us trouble. The PC <strong>grounds</strong> button inputs to activate them, while the Apple II <strong>applies 5V </strong>to inputs to activate them. There's no easy way to solve this; you need a logic inverter. Fortunately this constitutes a single transistor per button.</p>
<h1>Design</h1>
<p>
<a href="/uimages/2019-04-02 21_15_02-SchemeIt _ Free Online Schematic Drawing Tool _ DigiKey Electronics.png">
<img src="/uimages/2019-04-02 21_15_02-SchemeIt _ Free Online Schematic Drawing Tool _ DigiKey Electronics.png" style="width: 601px;" class="fr-fic fr-dib" />
</a>
</p>
<p>The +5 and ground symbols are just representations. Mostly you're just connecting the pins straight through, with the exception that you need to connect from DB15 pin 1 (+5V) to the emitters of the transistors. That's it.</p>
<p>Here's what mine looked like:</p>
<p>
<a href="/uimages/1554312455639.png">
<img src="/uimages/1554312455639.png" style="width: 300px;" class="fr-fic fr-dib" />
</a>
</p>
<p>As you can see, it's mostly just wires and then four components. To test it, use <a href="https://archive.org/details/AppleCillinII" rel="noopener noreferrer" target="_blank">Apple Cillin II</a> (option 4, then option T.) Good luck!</p>
<h1>Results</h1>
<p>It works well, but it's a little twitchy. Arkanoid works great (it sure beats console versions with relative instead of absolute inputs) but the paddle skips around a lot.</p>
<p>I feel like adding a trim pot to the X and Y axes to decrease their range might not be a bad idea, though it would only work for games with calibration code.</p>
</div>
2019-03-18-09-532019-03-18T09:53:00-07:002019-03-18T10:57:00-07:00gravislizardtag:gekk.info,2019-03-18:/blog/main/2019-03-18-09-53.htmlI drew several pictures in the Apple II app "Digital Paintbrush"
<div>
<p>I drew several pictures in the Apple II app "Digital Paintbrush"</p>
<p>They're based on the album art for each of these songs</p>
<p>
<a href="/uimages/DyTC0FiUcAAjCFQ.jpg">
<img src="/uimages/DyTC0FiUcAAjCFQ.jpg" style="width: 590px;" class="fr-fic fr-dib" />
</a>
</p>
<p>
<a href="/uimages/DyTC0FiUcAAjCFQ.jpg" />
<a href="/uimages/DyWxvfqUwAAGk5m.jpg">
<img src="/uimages/DyWxvfqUwAAGk5m.jpg" style="width: 586px;" class="fr-fic fr-dib" />
</a>
</p>
<p>
<a href="/uimages/DyXDoBjUYAAUjhI.jpg">
<img src="/uimages/DyXDoBjUYAAUjhI.jpg" style="width: 586px;" class="fr-fic fr-dib" />
</a>
</p>
</div>
NUTS.WAD Death Distribution2018-12-13T16:53:00-08:002018-12-13T16:57:00-08:00gravislizardtag:gekk.info,2018-12-13:/blog/main/nutswad-death-distribution.html
<div>
<p>I didn't want to put these in my previous post about NUTS.WAD but I did want to share them. These are the before and after locations of dead enemies after completing NUTS.WAD.</p>
<p>
<a href="/uimages/1544748974105.png">
<img src="/uimages/1544748974105.png" style="width: 300px;" class="fr-fic fr-dib fr-fil" />
</a>
<a href="/uimages/1544748848576.png">
<img src="/uimages/1544748848576.png" style="width: 300px;" class="fr-fic fr-dib fr-fil" />
</a>
</p>
<p>
<a href="/uimages/1544748848576.png" />
<a href="/uimages/1544749032985.png">
<img src="/uimages/1544749032985.png" style="width: 300px;" class="fr-fic fr-dib fr-fil" />
</a>
<a href="/uimages/1544748893915.png">
<img src="/uimages/1544748893915.png" style="width: 300px;" class="fr-fic fr-dib fr-fil" />
</a>
</p>
</div>
Nuking The Devil Infinity Times In NUTS.WAD2018-12-13T10:36:00-08:002018-12-14T10:19:00-08:00gravislizardtag:gekk.info,2018-12-13:/blog/main/nuking-the-devil-infinity-times-in-nutswad.htmlI combined two of the most ridiculous mods I could find for Doom and transcended the physical plane, but by the time I reached heaven, the journey had drained my longing to touch God's face.
<div>
<p>
<a href="/uimages/1544726328140.png">
<img src="/uimages/1544726328140.png" style="width: 576px;" class="fr-fic fr-dib" />
</a>
</p>
<p>I first played Doom in, probably, 1994. I was 6, and it terrified me. I mean real, genuine fear - the game was dark and spooky and I didn't understand how things worked and that certain parts of levels simply didn't matter; "secret area" did not mean anything to me, and in fact the notion of progressing through a level in a linear way to reach the exit was not really anywhere in my head. I was wandering, and sometimes I would progress, and the connection between the two was not clear.</p>
<p>
<a href="/uimages/1544726787773.png">
<img src="/uimages/1544726787773.png" style="width: 578px;" class="fr-fic fr-dib" />
</a>
<br />
</p>
<p>I remember standing at a doorway in E1M2, a door that hadn't been open when I first passed through which revealed a secret area - it was clearly a maze, I had no idea it was there until it suddenly was, and beyond the reach of the bright light shining through the doorway I saw flickering passages.</p>
<p>I couldn't proceed. I remember cowering there, in the safety of the reliable light beaming from the hallway I had traversed countless times already, afraid to proceed into the uncertain depths. It felt like I didn't belong there, and the idea that I was a powerful, unstoppable soldier whose job was to intrude on this place did not penetrate to my mind.</p>
<hr />
<p>So then the internet came along. I was - eight, nine? My parents got a modem, they got service through the local phone company, and somehow I found Walnut Creek's ftp.cdrom.com. What a cursed hellhole. It completely ruined the game for me.</p>
<p>
<a href="/uimages/1544727123467.png">
<img src="/uimages/1544727123467.png" style="width: 567px;" class="fr-fic fr-dib" />
</a>
</p>
<p>I don't exactly know where it all came from. It was gone by the time I was old enough to really think about this. There was no index, no curated .htm that explained what all this was about and maybe surfaced a set of recommendations. Google wasn't even really terribly useful yet, and I had no idea what it was or how to use it. What i had was an FTP client and this folder that had countless, unending miles of user-created content, almost all of it bad.</p>
<p>I remember wandering through a blocky, poorly-rendered NCC-1701D at a time when ST:TNG was still airing new episodes. There were so many renditions of myhouse.wad, and I thought those were dope as hell. Something about putting a real place into a game (Doom was very abstract) tickled my fancy tremendously, and I downloaded as many of these as I could. But what really got to me were the weapon mods.</p>
<p>Sometime in the mid 90s my parents bought a copy of <em>Tricks Of The DOOM Programming Gurus</em>, which was of course not actually about programming at all, as I recall, but did come with tools and instructions on how to create your own content. Somewhere in that book was a screenshot, in dithered black and white, of a PWAD whose name I could not pronounce. I remembered it as <em>Obtuary</em> for years, until sometime in my teens I learned it was actually called <em>Obituary</em>. I would not actually play this WAD, for reasons I can't remember, for probably ten years after I first saw it.</p>
<p>What grabbed me about that screenshot was the weapons. </p>
<p>
<a href="/uimages/1544728186761.png">
<img src="/uimages/1544728186761.png" style="width: 598px;" class="fr-fic fr-dib" />
</a>
</p>
<p>Two mother fucking pistols. It was 1996 at this point and I had played Rise Of The Triad, which had double pistols, but somehow something about seeing two pistols in Doom just floored me. I wanted it so bad, and if I had to guess, it's because the weapons in Doom are (forgive me) very boring. I deleted my lengthy review of Doom guns, thank me later.</p>
<p>I really wanted new guns. I wanted something punchier, and this set me off on a wild chase through ftp.cdrom.com that lasted years. This of course was to be a fruitless pursuit, because the degree to which users could modify Doom at that time was very limited. Graphics, sound and levels could be changed, but no new functionality could be added - no new weapons, no new monsters, and no new weapon <em>behaviors</em> - the shotgun <em>had</em> to fire exactly once and then reload, and you couldn't do anything about that. DeHackEd, a very clever binary editor, was able to adjust things like the length of time weapons dwelled on a given frame, but couldn't add new frames or new behaviors.</p>
<p>At that time (1998?) things like ZDoom were not really on the radar. They may have existed, but I didn't know it, and googling this stuff was hard or impossible. ZDoom broke the game right open, adding the ability to create completely unique new weapons, items, enemies and everything else, with as much behavior as you could ask for. Later editions converted the game to true-3D OpenGL, added lighting, shaders, and lots of other capabilities. This version of the game was capable of endless expansion, and if I'd had access to it as a child I would have devoured it - but I didn't.</p>
<p>Instead, I spent my time downloading PWADs that simply changed the appearance and sounds of the weapons. A couple mods, such as Aliens TC, included DeHackEd patches that made the feeling a little more complete - Aliens TC gave me an autorifle that fired at an absurd rate and had a bitchin' sound effect ripped from the movie. It was almost enough, but I wanted more.</p>
<p>I trawled through Walnut Creek CDROM's FTP for years, downloaded thousands of WADs, downloaded every tool, eventually did my own mods and hacks, and absolutely wore the game out. I wrung it completely dry, poked into every crevice and crack that I could until it was no longer a world that held the power to frighten me, but just a pile of BMPs and WAVs and frame indexes. Eventually I checked out of Doom.</p>
<hr />
<p>Over the years I revisited Doom. I saw when Boom, ZDoom and other source ports materialized and got major updates. I think I played the game with realtime lighting and shadows once, sometime after Doom 3 came out. It was still just Doom though, and couldn't hold my attention as a game, only as a technical accomplishment.</p>
<p>A few years ago I, unfortunately, became aware of Brutal Doom. In short: it revitalized my interest in Doom, but is apparently made by an asshole. I haven't looked into this, but several people have told me that it's a bunch of stolen work cobbled together by a terrible man and that I shouldn't play it. This is fair, and I'm not anymore anyway.</p>
<p>It did however get me to believe that I could enjoy Doom again, primarily because it replaced all the weapons with ones that are far more powerful (a complaint I had,) with punchier sound effects (a complaint I had,) crunchier action (a complaint I had) and much more impressive animations. This finally satisfied my desire for Cooler Guns, and I played through 75% of the game this way.</p>
<p>This, too, became old. Doom does not contain enough meat for my imagination to sink its teeth into at this stage in my life, and after a while I no longer cared much for Brutal Doom either. I think I deleted it.</p>
<hr />
<p>At some point, I came across the Russian Overkill mod.</p>
<p>
<a href="/uimages/1544730052518.png">
<img src="/uimages/1544730052518.png" style="width: 568px;" class="fr-fic fr-dib" />
</a>
</p>
<p>I look at this thing, and I immediately assume it was made by a shithead. Researching people to find out if they suck is difficult when they're part of a community that mostly exists on forums rather than social media, so, I don't know anything for sure, but all the elements are there for me to just assume this guy is an irony-poisoned 4chan /k/ edgelord whose entire concept of Russia is extrapolated from Guy Ritchie's character Boris The Blade. A place that is comfortably culturally distant and irrelevant is a great one for an American to live out his fantasies of some exaggerated Klingon hell-world that celebrates war and wholesale slaughter with a smile and a hearty laugh.</p>
<p>I also assume he stole all the art.</p>
<p>
<a href="/uimages/1544730346129.png">
<img src="/uimages/1544730346129.png" style="width: 520px;" class="fr-fic fr-dib" />
</a>
</p>
<p>But something about it tickled me, so I installed it. It's completely absurd, and by "completely" I mean it goes far past where it needs to. It's "just" a weapons mod (the actual levels you'll play are just the normal ones from the original game, with the original enemies) but the intent, to portray your character as some jocular, magical-realism mass-murderer rings true.</p>
<p>
<a href="/uimages/1544731485750.png">
<img src="/uimages/1544731485750.png" style="width: 511px;" class="fr-fic fr-dib" />
</a>
</p>
<p>The title screen regales us with a majestic orchestral, vocal score that I'm sure was lifted from whatever fantasy epic was popular in the year this was released, as the camera whirls around a castellated monument covered in the many, many weapons this mod provides.</p>
<p><a href="/uimages/1544731611666.png"><img src="/uimages/1544731611666.png" style="width: 514px;" class="fr-fic fr-fil fr-dii" /></a> <a href="/uimages/1544731968745.png"><img src="/uimages/1544731968745.png" style="width: 519px;" class="fr-fic fr-fil fr-dib" /></a></p>
<p>The menu text has all been replaced with obnoxious repetitions of the same jokes: "Russians Drink Lots Of Vodka", and "Motherland." This kind of humor was all over the place in the internet of 1998; I remember reading this kind of cheap, lazy comedy in .TXT files that came with unknown PWADs based on South Park or the ancient "clubbing seals" meme.</p>
<p>This mod was released in 2011. It's almost like, while Doom modding has changed, the modders never did. Maybe it's true - maybe the author of this mod was making DEADBABY.WAD in 1995, and this is the culmination of many years of honing his craft.</p>
<p><a href="/uimages/1544732098333.png"><img src="/uimages/1544732098333.png" style="width: 383px;" class="fr-fic fr-dib fr-fil" /></a> <a href="/uimages/1544732170470.png"><img src="/uimages/1544732170470.png" style="width: 381px;" class="fr-fic fr-dib fr-fil" /></a> <a href="/uimages/1544732237379.png"><img src="/uimages/1544732237379.png" style="width: 383px;" class="fr-fic fr-dib fr-fil" /></a></p>
<p>The "pistol" is now a duplicate of the flare gun from Blood, although curiously they didn't use the Blood sprite. I'm kind of surprised by this. It kills shotgun troopers in a single shot, and has blast damage.</p>
<p><a href="/uimages/1544732319075.png"><img src="/uimages/1544732319075.png" style="width: 392px;" class="fr-fic fr-dib fr-fil" /></a> <a href="/uimages/1544732346361.png"><img src="/uimages/1544732346361.png" style="width: 394px;" class="fr-fic fr-dib fr-fil" /></a></p>
<p>When you kill your first shotgun troop, they drop a tank cannon. A literal tank cannon; that's what it says when you pick it up.</p>
<p>
<a href="/uimages/1544732415299.png">
<img src="/uimages/1544732415299.png" style="width: 496px;" class="fr-fic fr-dib" />
</a>
</p>
<p>On and on it goes from here. I think enemies drop randomized weapons, otherwise it would be impossible to get all the weapons in the game - as you can see from the <em>absurd</em> ammo display on the HUD, there are a tremendous number of <em>types</em> of weapon, let alone weapons themselves. I counted 43 weapons, some completely original, some ripped from other games, such as the rare and powerful Excalibat from Rise Of The Triad (which plays an anachronistic Team Fortress 2 "Bonk!" when you arm it) and an obnoxiously overpowered and thoroughly remastered RPG from Duke Nukem 3D.</p>
<p>
<a href="/uimages/1544732642627.png">
<img src="/uimages/1544732642627.png" style="width: 451px;" class="fr-fic fr-dib" />
</a>
</p>
<p>Almost all of the weapons have absurd, uncontrollable recoil and view punch. The RPG throws you back about five feet and knocks your camera pitch up 20 degrees. The blast damage from these weapons is scaled for World of Tanks, not the tiny, claustrophobic hallways of Doom. The idea of actually using these as everyday weapons in a videogame (without god mode) is laughable.</p>
<p>If it only stopped there, this mod would be a silly curiosity, good for a few minutes of eye rolling. But it goes harder. These are the most basic weapons; from there it goes <em>completely</em> through the roof.</p>
<p>You'd think a nuclear missile launcher (the Redeemer from UT99) would be somewhere near the apex of the absurdity spectrum, but that one's honestly pretty tame. It's "just" a nuke, and indeed, the Redeemer made the idea of using a nuke in a 5-man melee "normal" nearly 20 years ago. We are numb to this kind of magical realism; we need stiffer stuff to feel anything these days. The absurdity must increase, but it must also follow the newly-discovered techniques of humor we have unearthed in recent years.</p>
<p>The Redeemer creates a mushroom cloud inside E1M1:</p>
<p>
<a href="/uimages/1544733060216.png">
<img src="/uimages/1544733060216.png" style="width: 453px;" class="fr-fic fr-dib" />
</a>
</p>
<p>This produces nothing more than a satisfied nod from our scarred minds. Turn to the quad shotgun:</p>
<p>
<a href="/uimages/1544733118463.png">
<img src="/uimages/1544733118463.png" style="width: 452px;" class="fr-fic fr-dib" />
</a>
</p>
<p>The Redeemer commands a lofty position on the 8 key. You get to the quad by pressing the far-removed 3 key four times, so by the time you find it, you've been in the game for several minutes and you think you have a notion of where things are heading. I don't think anyone, upon seeing this gun appear, wouldn't stifle a laugh. As soon as you realize that <em>it's the double-barreled shotgun, but twice</em>, an involuntary chuckle just bursts out.</p>
<p>It's the same feeling that <em>Back At It Again At Krispy Kreme</em> produced when you first saw it, the <em>he's not really gonna do this in a fucking chain restaurant</em><em>, nobody would be that gauche</em> feeling. But he <em>does</em> do it, and it happens so fast and with so little ceremony that a good part of the humor comes simply from the event refusing to slow down, to wink knowingly at the camera and give you a second to get ready, to elbow your boyfriend and say <em>here comes the good part</em>. It just happens.</p>
<p>
<a href="/uimages/1544733624970.png">
<img src="/uimages/1544733624970.png" style="width: 444px;" class="fr-fic fr-dib" />
</a>
</p>
<p>If selecting the gun is the beginning of the vine, reloading it is the guy kicking the sign off the wall. It's <em>two stacked copies of the original double-barrel</em> <em>art</em>, just copied and pasted, and your hand stuffs in four shells, one pair at a time. You have to watch this in motion to understand how asinine it looks, and the first time you see it ingame you'll probably laugh in an embarrassing way.</p>
<p>I cannot tell you about the other 40 weapons. There's too many, and it's more about the specific feeling of it than the description. Suffice to say, almost all of them operate either by shooting gigantic rockets that produce massive explosions, or by firing <em>obscene</em> numbers of projectiles. One of them launches a bomb that explodes into 30 headless suicide bombers from Serious Sam.</p>
<p>I'm honestly very impressed at the creativity of this mod. It is a work that follows the <em>Monster Factory</em> mantra of "no middle sliders." There is a talent to comedic exaggeration, and many people do not have it.</p>
<hr />
<p>The creator of NUTS.WAD does not appear to have it. Nuts is a legendary piece of shit, one of the dumbest things anyone has ever created in the category of <em>Video Game Mod</em> that is still known to people rather than having disappeared under the surface of the sea of crappy maps created by unknown teens on Walnut Creek and the archives that replaced it.</p>
<p>NUTS.WAD is not hard to explain. Here:</p>
<p>
<a href="/uimages/1544734045319.png">
<img src="/uimages/1544734045319.png" style="width: 444px;" class="fr-fic fr-dib" />
</a>
</p>
<p>That's it. An enormous empty box with thousands of enemies.</p>
<p>You can imagine the design process: the guy had no ideas, opened the editor, drew a box, and just started plonking down enemies in a blank, studious manner. I initially assumed the author was a clueless kid, but I've since been informed that he created this map just to test uploading maps, and had actually already created much more serious work (that didn't get nearly as much appreciation.)</p>
<p>This WAD came out in 2001, and as i understand it, the original Doom basically won't run it. I'm not even sure if it'll load without crashing, but attempting to actually play it will founder your machine immediately. I think it was designed for Boom, one of the earliest source ports, which also couldn't handle it on any computer of the time.</p>
<p>It goes without saying that as soon as you fire your gun, everything begins attacking you.</p>
<p>
<a href="/uimages/1544734305345.png">
<img src="/uimages/1544734305345.png" style="width: 445px;" class="fr-fic fr-dib fr-fil" />
</a>
</p>
<p>
<a href="/uimages/1544734273393.png">
<img src="/uimages/1544734273393.png" style="width: 444px;" class="fr-fic fr-dib fr-fil" />
</a>
</p>
<p>I am told there is a speedrun-style trick for actually completing this level (yes, it has an exit trigger; you can 'win') but I don't know that anyone has ever made a dent in the horde without god mode and ammo cheats. Even with god mode, I would guess it would take at least half an hour to kill everything, and you'd be punching in <strong>IDKFA</strong> every few seconds. The BFG seems like the only reasonable approach even given infinite ammo; there's just so much to kill. It is not fun, IMO, especially because even with god mode on you will spend every single second that you are here completely blinded by literally tens of thousands of projectiles splashing against your face.</p>
<p>But maybe this is what Russian Overkill is intended for.</p>
<p>
<a href="/uimages/1544734609695.png">
<img src="/uimages/1544734609695.png" style="width: 445px;" class="fr-fic fr-dib fr-fil" />
</a>
</p>
<p>As far as I can tell, this is the <em>Yamato</em>. I think it's the most powerful weapon in the mod. I took it to MAP30 because I needed a large area to demonstrate it.</p>
<p><a href="/uimages/1544734668833.png"><img src="/uimages/1544734668833.png" style="width: 300px;" class="fr-fic fr-dib fr-fil" /></a> <a href="/uimages/1544734718346.png"><img src="/uimages/1544734718346.png" style="width: 300px;" class="fr-fic fr-dib fr-fil" /></a> <a href="/uimages/1544734560547.png"><img src="/uimages/1544734560547.png" style="width: 300px;" class="fr-fic fr-dib fr-fil" /></a></p>
<p>It took me 10 tries to get those screenshots, because it's unfortunately so powerful that it kept killing the Icon of Sin, even if I pointed it nowhere near the brain aperture. The blast was so immense and so lengthy that it wouldn't even clear before the level ended.</p>
<p>
<a href="/uimages/1544734506498.png">
<img src="/uimages/1544734506498.png" style="width: 460px;" class="fr-fic fr-dib" />
</a>
</p>
<p>The impact of the Yamato on NUTS.WAD is complicated.</p>
<p>It begins, seemingly, with disappointment. Although you start the level with all the enemies facing away from you, unaware of your presence, the gun has a long ramp-up time before it fires, and the enemies can hear you when it <em>begins</em> the sequence, not just when it fires. So you have this weapon of incredible destruction, but before you can see it actually impact, 450 rockets hit you in the face.</p>
<p>It's a bummer, but it's not <em>disappointing</em> - how can you be disappointed when you didn't expect anything else? Of course it wouldn't be that easy, there's like 3000 Revenants out there. There was no way this was going to be clean.</p>
<p>
<a href="/uimages/1544735195121.png">
<img src="/uimages/1544735195121.png" style="width: 455px;" class="fr-fic fr-dib" />
</a>
</p>
<p>If you don't shoot exactly straight forward, and if your framerate stays high enough, one of the first things you'll see as the initial blast occurs is a mass of pulverized Imp bodies chucked up into the air by the explosion. This instantly puts a massive hole in your suspension of disbelief. If any part of your brain thought it was solving a real problem here, this is the first devastating indication that nothing that occurs here makes sense on the mortal plane. These sprites were never intended to be up in the air like that.</p>
<p>Fallout 3 might have been able to do some more sensible (albeit campy and buggy) ragdolling; even Quake could have turned these poor demons into bloody gibs, at least. But this is <em>the best Doom can do</em>. Taxed beyond anything imaginable in 1993, pushed beyond any rational limit with numbers not only never intended, but <em>impossible</em> in the codebase that this amoral mutant was grown from, the content created and behavior coded for the second successful FPS of all time is absolutely not up to the task of rendering the horror of a (if you will) <em>post-nuclear</em> detonation directly in a population center. This scene is <strong><em>too grisly for Doom</em></strong>.</p>
<p>
<a href="/uimages/1544735641696.png">
<img src="/uimages/1544735641696.png" style="width: 450px;" class="fr-fic fr-dib" />
</a>
</p>
<p>I played Fallout 3, before I realized I hated it, and I remember the mini nuke launcher. I've also watched videos of nukes in Fallout 4. How ironic that this Doom mod produces a far more satisfying and terrifying explosion. </p>
<p>If it's anywhere close by, it surrounds and envelopes you, and all other sounds and images are eradicated for a few seconds. If you're at least a few feet away, you get to see it properly. It's almost pink, and somehow this fits - this thing isn't "nuclear," it's something <em>more</em>. It's a staggering sight.</p>
<p>In NUTS.WAD, it's particularly difficult to actually see it explode at a distance, because of Doom's "infinitely tall" enemies. NUTS puts enemies right at the foot of your starting location, so if you fire in any direction you'll hit an enemy immediately. In GZDoom we can disable this behavior.</p>
<p><a href="/uimages/1544736208920.png"><img src="/uimages/1544736208920.png" style="width: 450px;" class="fr-fic fr-fil fr-dib" /></a> <a href="/uimages/1544736217880.png"><img src="/uimages/1544736217880.png" style="width: 452px;" class="fr-fic fr-dib fr-fil" /></a></p>
<p>This is what it looks like to kill 300 mid-level Doom monsters at once.</p>
<p>The first blast, no matter where you put it, seems to kill the first two ranks (Imps and Demons) completely and instantly. I don't understand the math at work here, since I know this weapon can kill any enemy immediately at close range, so I guess there's some inverse cube falloff going on with the damage that doesn't fall off quite rapidly enough to become nonlethal to an enemy of this rank no matter where they are in the map.</p>
<p>You can continue to fire down at the masses if you want, but at this point you'll simply be blinded and pushed around by the thousands of missiles. You're better off hopping down, because then monsters will be hitting each other in the process of trying to hit you, and this cuts down on the onslaught of projectiles considerably. It is at this point that you get to see what you've accomplished properly.</p>
<p>
<a href="/uimages/1544736522708.png">
<img src="/uimages/1544736522708.png" style="width: 445px;" class="fr-fic fr-dib" />
</a>
</p>
<p>The death toll is incredible. You can tell they barely moved off their starting positions, the grid formation still visible in corpses that dropped right where they stood.</p>
<p>What does it mean to be "powerful" when power is just an integer in RAM? When death is meaningless beyond a simple <em>damage > health</em> check in an IF statement, are you really accomplishing anything through murder, through mass-murder? We know the answer is no, but games try so hard to prevent this realization. This game does not try hard, and yet, what you've done feels bigger, more meaningful than the easy kills of an "arcadey" FPS like <em>Serious Sam</em>.</p>
<p>You also know this is no Rainbow Six. None of these kills matter in themselves, and even in a normal map you would have wave after wave of enemy to fight after this, and yet, you know that doing this with a Vanilla Doom rocket launcher or BFG would be unthinkable. It would be agonizingly slow, and yet the scale of this devastation is hard to imagine. </p>
<p>You can't picture opening up whatever editor the guy used to create this weapon and typing <em>that many</em> zeroes. No matter how poor a writer you may think you are, something would stop you from violating the rules of fiction that egregiously.</p>
<p>At this point you are, obviously, into the slog. There was no way around it; with this many enemies the next step is obviously a long, tedious period of unexcited shooting. If you were in the original game that would mean holding down fire on the plasma rifle or BFG, pausing only to type <strong>IDKFA</strong>. But this is Russian Overkill. The strategy is at once simpler and much more nuanced; you have to pick your targets.</p>
<p>
<a href="/uimages/1544743676572.png">
<img src="/uimages/1544743676572.png" style="width: 531px;" class="fr-fic fr-dib" />
</a>
</p>
<p>After the first or second blast, this is what you're looking at. There are shots coming at you, but nothing like the blinding chaos at the beginning; the tenor of the whole situation has changed. It already feels like the later hours of a battle, when the shooting continues in earnest, but nothing like the continuous, unbroken fury and howl of the initial rush into combat.</p>
<p>At this moment, you could fire in any direction and hit <em>something</em>, but the chances of missing a group and hitting a wall are higher than you'd think. That will still cause some deaths, but not the immense sweeping carnage you want. </p>
<p>You have god mode, so what are the terms of "success" here? If all you wanted was to kill everything you could just blindly spin and fire while typing <strong>IDKFA</strong> periodically - it'll get the job done. The goals here have to be <em>efficiency</em> (you don't have all day), <em>maximum satisfaction</em> (taking out the enemies in clusters) and <em>minimal mess</em> (not staring at annoying missile explosions the entire time you're doing this.)</p>
<p>The missiles flying at you are slow - you can just backpedal to avoid them. The ones hitting you from behind are less important. The monsters are also infighting at this point due to hitting each other trying to hit you, so there's not that much fire on you. If you back up at a dead run and spin around you can usually find a cluster of isolated enemies to shoot.</p>
<p>
<a href="/uimages/1544744039960.png">
<img src="/uimages/1544744039960.png" style="width: 300px;" class="fr-fic fr-dib fr-fil" />
</a>
</p>
<p>
<a href="/uimages/1544744086094.png">
<img src="/uimages/1544744086094.png" style="width: 300px;" class="fr-fic fr-dib fr-fil" />
</a>
</p>
<p>
<a href="/uimages/1544744101492.png">
<img src="/uimages/1544744101492.png" style="width: 300px;" class="fr-fic fr-dib fr-fil" />
</a>
</p>
<p>This is what you wanted. A clean sweep. Everything silenced at once, no missiles flying at your face. A clean, quiet, calm field of bodies you can now simply disregard. You fixed this problem.</p>
<p>You'll repeat this a few times, and then suddenly it becomes hard to find targets. You wander the field, seeing flying missiles but not knowing where they come from due to the enormous, breathtaking vastness of the arena, until you come across one of the few clumps of enemies remaining.</p>
<p>
<a href="/uimages/1544744532617.png">
<img src="/uimages/1544744532617.png" style="width: 552px;" class="fr-fic fr-dib fr-fil" />
</a>
</p>
<p>What do you do at this point?</p>
<p>Is it really worth it to fire one of these nightmare projectiles at only <em>six</em> Barons of Hell? (remember that <em>two</em> of these served as the final boss to the first episode of Doom, but since they're standing in a field of thousands of dead brethren I think we can ignore that irony)</p>
<p>This game has so many weapons. At this point you're really only concerned about not being irritated by silly flashes and noises - if you go looking for another weapon you'll definitely get hit by a couple fireballs while trying to find the perfect one, and unless you're intimately familiar with Russian Overkill (we probably both hope you aren't) there's a good chance you'll pick one that's so weird it actually sours the whole experience - throwing a single mine in between these Barons and then watching them fail to step on it would be really lame after all that.</p>
<p>So, of course, you use a gigaton nuke from some parallel anime dimension on six monsters you could have killed with Doom's stock rocket launcher in only a minute or two.</p>
<p>At this point, you've won.</p>
<p>
<a href="/uimages/1544744883570.png">
<img src="/uimages/1544744883570.png" style="width: 534px;" class="fr-fic fr-dib fr-fil" />
</a>
</p>
<p><a href="/uimages/1544744926241.png"><img src="/uimages/1544744926241.png" style="width: 533px;" class="fr-fic fr-dib fr-fil" /></a>You've killed them all. It was an experience. You could quit, now, probably having chuckled a few times, feeling like it was worth the experience. Doom is cheap, you probably already have it, gzdoom and Russian Overkill are free, so this all cost you maybe twenty minutes. But you could also proceed into the next room.</p>
<p><a href="/uimages/1544745027941.png"><img src="/uimages/1544745027941.png" style="width: 334px;" class="fr-fic fr-dib fr-fil" /></a> <a href="/uimages/1544745063552.png"><img src="/uimages/1544745063552.png" style="width: 334px;" class="fr-fic fr-dib fr-fil" /></a> </p>
<p>
<a href="/uimages/1544745091349.png">
<img src="/uimages/1544745091349.png" style="width: 450px;" class="fr-fic fr-dib fr-fil" />
</a>
</p>
<p>Obviously NUTS.WAD has a second room. You didn't know? You didn't <em>guess?</em></p>
<p>It's all spider masterminds and cyberdemons. An important thing about the Spider Mastermind: it's "activation" noise, the one it makes when it spots you, apparently mutes all other sound in the game, presumably so it sounds <em>really</em> terrifying. So when a <em>shitload</em> of them notice you all at once, it would in fact be very terrifying, if the Cyberdemon rockets hadn't already started pounding into you.</p>
<p>
<a href="/uimages/1544745277103.png">
<img src="/uimages/1544745277103.png" style="width: 497px;" class="fr-fic fr-dib" />
</a>
</p>
<p>After the events so far, you'd think you know how wacky "doom with really big numbers" is, but you're wrong. The Cyberdemons fire rockets faster than you can possibly imagine, and their reaction speed is absurd. By the time you have the first shot off, there are dozens of rockets hitting you. You mostly just see an explosion, constantly. You can stand in the middle of a group of Cyberdemons and fire the Yamato, and the onslaught <em>doesn't stop for a moment</em>. You can hear rockets hitting you over the sound of the Yamato detonation.</p>
<p>It is difficult to accept, but nothing that happens in room 1 prepares you for this. You've fought 3000 high-level monsters, and it was <em>nothing like this</em>. This is absolute, unending chaos from the very first millisecond and it does not stop until everything is dead.</p>
<p>  <a href="/uimages/1544745260997.png"><img src="/uimages/1544745260997.png" style="width: 504px;" class="fr-fic fr-dib" /></a></p>
<p>
<br />
</p>
<p>There are so many rockets, at all times, everywhere.</p>
<p>
<br />
</p>
<p><a href="/uimages/1544745594699.png"><img src="/uimages/1544745594699.png" style="width: 508px;" class="fr-fic fr-dib" /></a> </p>
<p>You are watching Satan's own weapon of absolute destruction explode, sending <em>thirty </em><em>Cyberdemons</em> flying away from the epicenter, and still you can hear an unending, continuous stream of rocket detonations. They are everywhere and nowhere, because you can't really see the explosions because there are so many and they're directly on top of your face, blending in with the Yamato, or they're against your back.</p>
<p>Even after killing 50% or 60% of the Cyberdemons, it doesn't end. The rockets just keep coming, uninterrupted.</p>
<p>The Spider Masterminds are here, but their main weapon is a chaingun. I always thought this was a weird choice, because the Spiderdemons' plasma guns are so much more impressive and impactful and, of course, blinding. The Masterminds are probably shooting you more than the Cyberdemons right now, but you can't see it because it produces no explosions, so this doesn't matter, and all these instances of the apparent "final boss" of original Doom fade into the background.</p>
<p>You are only concerned with the Cyberdemons and their incessant rockets, so when you tag a Spider by accident and discover that its death sound <em>also</em> mutes everything else momentarily, it's like a reminder that "Oh yeah, the Spider Mastermind was in the game too."</p>
<p>There is no strategy here because the Cyberdemons seem to move so much faster and more randomly than anything in room 1, you really just blast everywhere until you can cut down enough of them to hear yourself think. They don't end up in clusters like the Barons ultimately do, they walk all over and end up spread around, pressed against the walls, and continuing to bombard you with rockets from all directions until you pick each one off one at a time.</p>
<p>When everything finally falls silent, you will probably find, after wandering for a moment and getting hit with yet another rocket, that a couple Cyberdemons have gotten blown up by their fellows' rockets onto the raised platform you started on.</p>
<p>
<a href="/uimages/1544746035673.png">
<img src="/uimages/1544746035673.png" style="width: 502px;" class="fr-fic fr-dib" />
</a>
</p>
<p>And while taking these out, you start getting hammered, again, with more god damn rockets.</p>
<p>
<a href="/uimages/1544746059092.png">
<img src="/uimages/1544746059092.png" style="width: 505px;" class="fr-fic fr-dib" />
</a>
</p>
<p>You aren't done until you polish off every single one of them, walk the field from end to end and make sure not a single one of the bastards is still around. It's tedious and unsatisfying and unsettling. </p>
<p>You left room 1 thinking "this gun that they just keyboard-mashed firing parameters into turns even NUTS.WAD into something a circus would reject; how would this even work in the normal game?" and here you are at the end of room 2 feeling like "<em>if only it was fully automatic</em>." You've had god mode the whole time, and yet, this was a challenge. It was <em>impossible</em> to imagine being hit by <em>that many rockets</em> with no pauses. Is this what real war is like? Nope, not that either.</p>
<p>I got more out of this than I got out of Shadow Warrior 2. The soundtrack is a MIDI of Led Zeppelin's Kashmir.</p>
</div>
The Corsair Void Pro Wireless Is A Piece Of Shit, Probably Buy It |OR| Wireless PC Headset Buying Guide (Incomplete)2018-08-10T22:50:00-07:002018-08-11T18:25:00-07:00gravislizardtag:gekk.info,2018-08-10:/blog/main/the-corsair-void-pro-wireless-is-a-piece-of-shit-probably-buy-it-or-wireless-pc-headset-buying-guide-incomplete.htmlI just bought these new headphones, I hate them to death, you should consider them. IGN 7.8/10
<div>
<p>The world of wireless PC headsets is really blowing up! That's just wishful thinking, I would <em>like it </em>to blow up. I hate it, I hate this market. I'm going to tell you a brief story, skip to the goods if you want to know how I unfucked my new wireless headphones that apparently don't work for anyone out of the box.</p>
<h1>Stuff That Came Before</h1>
<p>So in like, I don't know, 2008? I bought a set of Logitech G930s.</p>
<p><span class="fr-img-caption fr-fic fr-dib fr-draggable" contenteditable="false" draggable="false" style="width: 547px;"><span class="fr-img-wrap"><a href="/uimages/1533966757456.png"><img src="/uimages/1533966757456.png" /></a><span class="fr-inner" contenteditable="true">Logitech G930</span></span></span>These are in a lot of ways great headphones. They are not bluetooth, A2DP wasn't a thing yet. They're "2.4ghz" so who knows, some off the shelf audio transceiver IC set on the ISM band. Whatever. They worked. The audio quality was up to par (these aren't $295 audio technicas and I'm not Stereophile, deal with it) and the controls were EXTREMELY handy.</p>
<p>It's like this: Plug in the tiny USB receiver for this. You're done. No drivers, no godawful software. The top three buttons are preconfigured to send the next/prev and play/pause media keycodes, so you can control your media player right from the headset no matter where you are. The roller is a volume control that controls the system volume, NOT the headset volume, and the button ahead of it mutes the mic. You can also mute the mic by flipping it up. There's an LED on the mic to show you when it's muted. On the back there's a surround sound switch I never used.</p>
<p>Originally these were the dopest thing. They ran for like 3 days on a charge no matter what I did, they had good range, they were comfortable. I had no complaints. I owned them for many years, and then they started breaking - the mic in particular snapped off midway up the shaft and I had to glue and tape it back together multiple times, then the actual headband broke off the swivel joint and that was that.</p>
<p>So I hit the stores and looked for a replacement, and found none. There was nothing. I could buy wireless head<em>phones </em>but nothing with a mic. i could buy head<em>phone, </em>as in monaural, as in <em>why the hell do businesspeople think phone calls are better if you can only hear them in one ear, i've tried both, <strong>stereo is better, </strong></em>as in Plantronics crap intended for the Professional On The Go. There were literally no options for a headset intended for what I used these for - listening to music, playing the occasional game, and voice chat. So I just bought another pair of the same ones and kept using them.</p>
<p>The entire story played out again, everything broke in the same spots, so I needed another set. I was at PAX 2017 and the Logitech booth (yeah, I know, I got suckered) had a pair of G933's on display:</p>
<p><span class="fr-img-caption fr-fic fr-dib fr-draggable" contenteditable="false" draggable="false" style="width: 531px; width: 531px;"><span class="fr-img-wrap"><a href="/uimages/1533967153548.png"><img src="/uimages/1533967153548.png" /></a><span class="fr-inner" contenteditable="true">Logitech G933</span></span></span>The cords in the image are for charging and analog audio (if you want to use them that way) - these are indeed also wireless. I was wary, but pretty excited. They didn't feel too inferior in build quality, all the features still seemed to be there, and there was a replaceable battery - a BIG deal to me, since replacing the battery on the old ones was basically impossible (reasons) and mine had both died, so I anticipated the same. But the control buttons were on the rim of the ear cup now, instead of the side? I didn't get this. And the whole thing looks like Crysis in a really worrying way. But I really, really hate being the guy who just keeps rebuying Core 2 Dell Latitude's from 2008 claiming "this is the last good machine and it's good enough for me" when it <em>isn't</em> and he's just lying to himself, so I spent an absurd amount of money on these.</p>
<p>I hate them completely. I despise them like a sickness. How can I list the ways? By listing them: </p>
<ul>
<li>The battery life is shit out of the box</li>
<li>The charging jack is hard to find without taking them off</li>
<li>The mic sounds like DOG SHIT (how did they make it worse??? the G930 sounded great and vocal mics of this type were a solved problem by the 60s)</li>
<li>The mic mute and volume control play irritating tones in my ears</li>
<li>The mic is flimsy and rattles if you move your head while it's flipped up</li>
<li>The control buttons are MUCH smaller and the vertical orientation makes them not make any sense to me. The front-to-back orientation made perfect sense on the G930s - front for forward, back for back. I NEVER got used to these buttons, and their weird angles (fuck Crysis for making everything into angles) make them very hard to actually press. Like, seriously, your finger just <em>slides off of the button</em>.</li>
</ul>
<p>But the worst part about the buttons is that they <em>literally do nothing at all if you don't have the shitty, horrible program nobody asked for installed. </em>That's right, an entire flagship feature of this device - which worked PERFECTLY on its ten-year predecessor with no special software installed - literally cannot be used without installing a bloated piece of shit that will mess up your computer. It forgot my settings four times before I gave up using it and just uninstalled it. That is to say, I made settings changes, and it <em>threw them away. </em>The most basic function of a program, "save data to a file," it failed on. And as always, there is 75% more real estate expended in the software UI on <em>RGB LED settings and color changing programs</em> than on anything else, which is completely relevant for a device 99% of consumers will use in their bedroom, alone.</p>
<p>So I hate these and I want them gone. I decided today to make that change happen, because I was at Fry's a while back and found out there's new products in this market. Praise be! Capitalism comes through again.</p>
<p>There are now about 5-6 different headsets at Best Buy. Razer has a couple (one isn't stocked there), Corsair has a couple, and like 4 other companies have offerings. Most of them looked pretty hokey. I was on a tossup between the Razer Manowar and the Corsair Void Pro. I ended up buying the Void Pro, so let's move into that.</p>
<h1>The Corsair Void Pro</h1>
<p><a href="/uimages/1533968161734.png"><img src="/uimages/1533968161734.png" style="width: 656px;" class="fr-fic fr-dib" /></a>Okay, it looks a little less like Crysis. It's still Gamer as hell, <a href="https://compete.kotaku.com/my-new-gamer-chair-fills-me-with-shame-and-existential-1823081150" rel="noopener noreferrer" target="_blank">which is a mark against it</a>, but whatever. All purposes for computers that aren't Gaming have been absorbed. Computers are for Gaming now, and if you want to do something else you have to hope Gaming has a use for the task as well. All computer products are dual-use, the way a high-speed switch is - you can use it for millions of harmless and productive applications <em>or</em> for triggering a nuclear bomb, so, the latter is the one we care about.</p>
<p>It has an easily accessible mute button. the mic flips down - the Razer mic slid out, and I felt like that was likely to break. It has a volume *rocker* instead of a roller - I didn't love that, but I wasn't willing to ixnay it. It was $79 instead of $143 like the Razer, so, that's why I walked out with it. The other models I didn't take notes on; they felt pretty indistinct and unimpressive to me.</p>
<p>I should note before we continue that there is a wired model which is also called the Void Pro, but doesn't say Wireless. There is also an alternate SKU of this, the Corsair Void Pro Wireless SE, which is exactly the same except you pay like $60 more in order to receive 1) yellow paint 2) a small usb extension cable with an upright port on the end. This is not worth money.</p>
<p>I got it home and unpacked it, there was nothing impressive in the box. Plugged in the USB adapter and immediately got audio. Yeow, though. Hm.</p>
<p><strong>Pros first:</strong> they're comfy enough. Mic turns off when you flip it up and makes a beep to confirm so you don't worry that the switch didn't trigger. More on that point later. The mic can be bent to face your mouth better. The mute button is easily reached. The volume control is less irritating than I expected - I wish it was a roller so I could quickly change volume but this is not a dealbreaker.</p>
<p>Okay now the problems: They sound like shit? Like, they're bassboosted to hell out of the box. I read that pressing in on the volume rocker changes the EQ settings but nothing happened, so apparently you need :) their bloatware installed :) to control :) half the features of :) your new device. What else is new, I bought a Crysis, what was I expecting?</p>
<h1>The Inexcusable, Horseshit Problem</h1>
<p>As soon as I installed the software ("iCUE" come the fuck on just <em>call it "Corsair Void Pro Driver" you assholes</em><u>)</u> the device stopped accepting audio connections. That is, Spotify would just pop a blue "we can't play this song right now" error, which I know from experience means one of two things: all available sound hardware has dematerialized (something crashed the audio stack or you're connected via RDP), or something has an exclusive hold on the sound card.</p>
<p>I won't bore you with the details. Nothing fixed this, and googling it confirms it just happens to people and then can't be fixed. I tried many versions of the software. Yada yada. Okay. Here's what worked:</p>
<p>From Device Manager, find the audio device. Right click and uninstall it. Unplug and replug the USB adapter. Edit the device and Update Driver. Navigate to C:\Program Files (x86)\corsair\CORSAIR iCUE Software\driver\audio (YMMV) and pick the inf there. Install the thing named after your headphones. Okay, you should be good now. I am, anyway.</p>
<p>I have no idea why this worked. I doubt it will survive a restart. It's <em>completely unacceptable </em>but whatever. Nobody cares. A corporation made a thing that doesn't work that .08% of their demo will actually buy. Yawn. Whatever. I won my little battle and I'm not going to pontificate on the many failures of capitalism, they're plain to see if you have eyes.</p>
<p>Once I did this the EQ button on the headset started working. All the presets are garbage. I was able to use iCUE to modify the "Clear Chat" one to add a little more high end boost and now I'm fairly happy. I'll update this if they go to shit and become unusable in some fresh new hellish way.</p>
<h1>Update: I Returned It, New Headphones Purchased</h1>
<p>After my girlfriend tried them out we mutually agreed that the Corsair Void Pro sounds like crap and the EQ only barely rescues it. So I took it back and bought more expensive ones.</p>
<p>It took me a while to decide on a pair, but I went with the Steelseries Arctis 7. This is yet another step backwards in functionality, but, okay, well, so.</p>
<p>
<span class="fr-img-caption fr-fic fr-dib fr-draggable" contenteditable="false" draggable="false" style="width: 576px; width: 576px;">
<span class="fr-img-wrap">
<a href="/uimages/1534035392872.png">
<img src="/uimages/1534035392872.png" />
</a>
<span class="fr-inner" contenteditable="true">Steelseries Arctis 7</span>
</span>
</span>
</p>
<p>So these ones... yeah. They were like, $129? Something like that. I bristled at that price, but anyway.</p>
<p>The mic retracts instead of flipping up. That action is fiddly and feels flimsy. It doesn't mute when you retract it. You have to press a button on the back of the earcup to do that. The button is however latching, so if it's muted it stays muted - this is actually a feature improvement over any other one of these I've had. The Logitechs in particular unmute if you lose and regain signal, which is the worst possible time for that to happen. But it does feel... less high tech, in a way that doesn't really fit the notion of a wireless headset.</p>
<p>To add to that feeling, the volume control is a <em>potentiometer. </em>As in, it doesn't just rotate forever, because it doesn't change the volume on your PC - it's just an analog attenuator inside the headphones themselves. That's a highly desirable feature to many I imagine, it's just that I've gotten really used to using my headphones or keyboard to adjust my whole system volume and having just swapped out my keyboard for one that doesn't have a volume control, swapping headphones as well means I now have no way to adjust volume from e.g. inside a game. I guess that just means I need to go back to a keyboard that has that control again.</p>
<p>So I hooked it up to my PC and it sounded like shit, again. Muddy, muffled garbage with no stereo imaging at all. I'm not talking Stereophile review crap. I mean I was ready to take them back to the store immediately because they were worse than the previous pair.</p>
<p>Before reacting that hard I first installed the drivers. This, unsurprisingly, immediately cleared up the audio. I say unsurprising, not because it's reasonable, but because this class of hardware is hot summer garbage. The audio still wasn't <em>good, </em>but it was much better. After dicking with the EQ for a bit I got something that I'm <em>pretty </em>sure beats out the Logitechs, so, my journey appears to be complete. But did I mention the control panel for these is an Electron app? You just can't win.</p>
<h1>You Just Can't Win</h1>
<p>My advice is to not buy a product in this category. I realized today after all this that I almost never actually use the mic - I use my Blue Yeti whenever I'm even on Discord, so why do I care about this? Well, it turns out this one masks keyboard typing noise a lot better than the Yeti, but still, was this really worth it?</p>
<p>I guess at this point my advice would <em>almost </em>be "buy Bluetooth instead" because those sets are <em>way more consistent </em>and the tech is far more mature, but the way Windows in particular interacts with Bluetooth is still a little weird. So I think the actual solution is to trip over your headphone cables and break them and yank all your shit off your desk because that'll at least be your own fault, whereas dealing with wireless headphones in any way inevitably leaves you a victim of a shitty industry that doesn't care.</p>
</div>
2018-08-06-08-132018-08-06T08:13:00-07:002018-08-06T08:14:00-07:00gravislizardtag:gekk.info,2018-08-06:/blog/main/2018-08-06-08-13.html
<div>
<p>
<a href="/uimages/1533568395243.png">
<img src="/uimages/1533568395243.png" style="width: 687px;" class="fr-fic fr-dib" />
</a>
</p>
<p>KoalaPainter offers no bezier tool (are you joking) but it does offer a "rays" tool so a lot of my doodles so far feature it. The attribute clash in this one is horrendous, i noticed it was happening and leaned into it.</p>
</div>
Building a C64 power supply2018-08-04T12:08:00-07:002018-08-04T17:08:00-07:00gravislizardtag:gekk.info,2018-08-04:/blog/main/building-a-c64-power-supply.htmlC64 power supplies are way too expensive and if you have a couple particular skills you can just build your own.
<div>
<p>C64 power supplies are way too expensive and if you have a couple particular skills you can build your own.</p>
<p class="warning">This assumes you have some experience working with electricity and have dealt with 110V wiring before, otherwise have someone else do it. I have the chops to do things half-ass; you'll know if you do too. <strong>If you aren't already confident you can check the voltage and polarity of a power supply and solder up a plug given the below diagram this is over your head for now, please do not attempt it, you'll hurt yourself or blow up your C64.</strong> I trust you to double-check which wire's <em>plus </em>before hooking anything up.</p>
<p>
<a href="/uimages/1533410011557.png">
<img src="/uimages/1533410011557.png" style="width: 415px;" class="fr-fic fr-dib" />
</a>
</p>
<p>Above is the pinout of the Commodore 64 power supply. There are a bunch of types afaik but they're all the same on the output. I think the C or the 128 or both take different supplies but that's not what we're here about.</p>
<p>There's no special relationship between the voltages here. You don't need a "5VDC and 9VAC power supply," you just need <em>two different power supplies, </em>which you will put inside one trenchcoat. You can probably build this with just that information, but I'll write up the rest of this to fill in any unanswered questions you might have at this point and suggest some ways to source parts on the cheap.</p>
<h1>Needed Components</h1>
<p>The first component is the 5V supply. This is trivial to find: Get an Android USB charger with a built in cable and cut the connector off. There'll be a power and a ground, bob's your uncle.</p>
<p>The 9VAC supply is tougher. This isn't really a "power supply", it's just a plain transformer. Transformers output AC, so if you get a wall wart that's rated at 9V and sufficient amperage, that'll work. If it's DC output but definitely a transformer-type adapter you can convert it - I made a video tutorial on how to do this <a href="https://www.youtube.com/watch?v=BuaEibOr-B8" rel="noopener noreferrer" target="_blank">here</a> and will convert the steps to a blog post soon. </p>
<p>It's important to note that you can't go too far <em>over </em>the desired voltage with a plain transformer. If you connect a 9V@3A transformer to a C64, you'll be feeding it something like 14-16 volts. Bad idea. But if it's rated at about 1000-1500ma you should be fine.</p>
<p>One problem with using an AC adaptor for parts is if you take the transformer out and put it in your own chassis you'll have to attach to the prongs that would have gone into the wall outlet. It's not practical to remove them and attach to the transformer wires directly. If you want to be safer but spend more money, buy a <a href="https://www.jameco.com/z/TR4820-91-R--p-Power-Transformer-9W-9V-1A-115-230VAC-Wire-Leads-p-_105524.html" rel="noopener noreferrer" target="_blank">plain transformer</a>:</p>
<p><a href="/uimages/1533412630249.png"><img src="/uimages/1533412630249.png" style="width: 300px;" class="fr-fic fr-dib" /></a>The advantage is that these have insulated wires on input and output that can be stripped and soldered like normal.</p>
<p>Only thing you need to know about this is that most plain transformers are <em>center tapped</em>, which means that on the output there are three wires instead of just two, and you need to use the two <em>identical color wires. </em>So in this case there's two black wires which you'll wire to the 110V input, and the output has two red wires and one yellow. Use the two red wires, put electrical tape / a wire nut on the yellow. Color code will differ by transformer and it's critical you identify which side is the 110V.</p>
<p>The hardest part to scrounge is the plug. You can get one on <a href="https://www.mouser.com/ProductDetail/REAN-Neutrik/NYS323?qs=sGAEpiMZZMvlX3nhDDO4AF5r4REUQkknYTgDyAkdFDs=" rel="noopener noreferrer" target="_blank">Mouser</a>, and it's cheap fortunately.</p>
<p>The cable is easier to scrounge but still somewhat of a problem because 1-1.5 amps is a bit of power. If you don't want to try to source a cable and worry about whether it's safe, see the "Safer Design" at the bottom which presents fewer such questions.</p>
<p>For mine I used a 4 conductor cable with 20ga conductors that I bought at my local electronics store, a luxury many towns don't have. You might be able to scrounge something like this from some other power cable. You only need four conductors because there are three redundant grounds and one unused pin. I recommend this approach.</p>
<p>CAT5/6 might work in a pinch but the wire gauge is probably too small for the max power rating of the C64. If you do this I would bind the pairs together to increase current capacity, and don't leave it running unattended.</p>
<p>If you really don't want to solder up a DIN connector (can't blame you) you can maybe get a prebuilt cable. <a href="https://www.amazon.com/Controller-Interface-Olufsen-Stereo-SystemsCable/dp/B01CQR5L1C/ref=sr_1_3?s=electronics&ie=UTF8&qid=1533410450&sr=1-3&keywords=7+pin+din+cable" rel="noopener noreferrer" target="_blank">Here's one from Amazon</a>, unfortunately; if you google you can probably find other sources. I don't know what the wire gauge is but I'm sure it's thicker than CAT5/6.</p>
<h1>Assembly</h1>
<p>
<a href="/uimages/1533411527940.png">
<img src="/uimages/1533411527940.png" style="width: 540px;" class="fr-fic fr-dib" />
</a>
<br />
</p>
<p>The way I built mine works as a proof of concept but is not safe. You can do this better if you use a transformer with its own wires instead of a reused AC adapter. There's another, safer way to do this detailed in the next section, and I recommend you read and use that approach unless you have a compelling reason to do it this way.</p>
<p>I started with a project box. You can use any plastic box for this as long as it's not easily breakable. I cut a hole in one end and installed an IEC power jack (you can scavenge this from a dead PC power supply) but you could also just drill / cut a hole, snip the end off a PC power cable, feed it through and tie a knot in it to keep it from falling out. Cut off the green ground wire (RIP) and strip the other two. Polarity is not important.</p>
<p>The PCB with all the parts is a 5VDC power supply I got by breaking open a 3A AC adaptor and pulling out the circuit board. There are two thick wires for 110V in and two thin wires for 5V out. There was a + on the board that told me which was which but if there isn't you'll have to put everything together, power it up, and use a voltmeter to determine polarity.</p>
<p>The two (thicker) input wires from the supply board are soldered to the hot and neutral lines of the IEC plug.</p>
<p>In the upper left corner is the transformer from a 9VAC wall wart. I broke the plastic casing, took out the transformer, and stuck two wires onto it with spade lugs, which slide right on to the 110V prongs:</p>
<p>
<span class="fr-img-caption fr-fic fr-dib fr-draggable" contenteditable="false" draggable="false" style="width: 95px; width: 95px;"> <span class="fr-img-wrap"> <a href="/uimages/1533412456671.png"><img src="/uimages/1533412456671.png" /></a> <span class="fr-inner" contenteditable="true">Spade lug</span> </span> </span>
</p>
<p>I crimped these to some 18ga speaker cord I had and soldered the wires to the hot and neutral on the IEC plug.</p>
<p>Obviously you can't do this if things can move around and short out, so glue down both power supplies (I used hot glue) and insulate the joints with heat shrink if you can. You can't take the prongs off and solder straight to the transformer windings, it just doesn't work, and if you try to solder to the prongs the windings will fall off.</p>
<p>If you used a plain transformer, just solder the input leads to the hot and neutral 110V input.</p>
<p>Take the output wires from the 9V transformer and splice them to two of the conductors in the cable going to the DIN plug (polarity is unimportant), then splice the output from the 5V supply to the other two wires. At the other end connect to the DIN pins according to the diagram. Make sure you reverse everything left to right (only the 5V pin matters, everything else is symmetric). Split your one ground wire to all three ground pins with whatever spare wire you have laying around. You're done.</p>
<h1>Safer Design</h1>
<p>Since this was created using two separate power supplies, another way to do this is to just use two separate power supplies basically unaltered.</p>
<p>Get a 9V AC wall-wart adapter and a 5VDC adapter, <em>don't </em>disassemble them, just cut the connectors off. Get a 7 pin DIN connector from the Mouser link above and just run both cables into the shell. Solder the wires to the pins, and you're done.</p>
<p>This is <em>exactly </em>the same design as what I showed you above, in every conceivable way. It just uses two wall outlets. There's no reason not to do it this way if you have two outlets free, and it prevents you from ever having to touch 110V. If you aren't a big electronics person I recommend this approach, it eliminates all questions of amperage rating in wiring and insulation quality. It also makes it easier to replace a supply if one fails.</p>
</div>
The IBM JX2018-08-03T11:08:00-07:002018-08-03T18:08:00-07:00gravislizardtag:gekk.info,2018-08-03:/blog/main/the-ibm-jx.htmlApparently when the PCjr was still A Thing IBM tried to break into the Japanese market with something called the PC-JX.
<div>
<p>I was gonna say I'm just pulling in the <a href="https://en.wikipedia.org/wiki/IBM_JX" rel="noopener noreferrer" target="_blank">Wikipedia content</a> for this but the Wiki article is, as usual, wrong, so I did some research on other sites to get a more cohesive overview. I also <em>really wanted </em>to make a note of this device, which I've never heard of in years and years of reading about IBM PCs. Tagged "iwantit" so maybe I can find it later if I ever go on a Buyee kick.</p>
<p>Apparently when the PCjr was still A Thing IBM tried to break into the Japanese market with something called the PC-JX.</p>
<p>
<span class="fr-img-caption fr-fic fr-draggable fr-dib" contenteditable="false" draggable="false" style="width: 536px;">
<span class="fr-img-wrap">
<a href="/uimages/1533322978757.png">
<img src="/uimages/1533322978757.png" alt="IBM JX.jpg" height="536" />
</a>
<span class="fr-inner" contenteditable="true">the PC JX (<a href="https://en.wikipedia.org/wiki/IBM_JX">https://en.wikipedia.org/wiki/IBM_JX</a>)</span>
</span>
</span>
</p>
<p>This was in Oct '84, so about two years after the PC-98 was released. The PC-98 was a massive success in Japan. The IBM PC was brand new in the US when the PC-98 came out, and per <a href="https://books.google.com/books?id=V2588uIxmAQC&pg=PA279&lpg=PA279&dq=IBM+PC+japan&source=bl&ots=5nU8XNVjrA&sig=mrnz5z3F7tFT220RVHF1164sfUk&hl=en&sa=X&ved=2ahUKEwj_38Om19HcAhWOyVMKHdrPCzwQ6AEwDHoECAEQAQ#v=onepage&q&f=false" rel="noopener noreferrer" target="_blank">Infoworld - Jul 83</a>, it appears that the IBM 5150 wasn't even released in Japan until '83, so the PC-98 had a head start already. "PC compatible" meant literally nothing in Japan, and the '98 had a Japanese character set - the IBM PC released in Japan was English-only (minus some diacriticals i think.)</p>
<p>
<span class="fr-img-caption fr-fic fr-dib fr-draggable" contenteditable="false" draggable="false" style="width: 730px; width: 730px;">
<span class="fr-img-wrap">
<a href="/uimages/1533326688040.png">
<img src="/uimages/1533326688040.png" />
</a>
<span class="fr-inner" contenteditable="true">the first pc-98 (from google image search somewhere)</span>
</span>
</span>
</p>
<p>The PC JX was presumably created to directly oppose those machines, and the PC-98 in particular. Wikipedia conflates things badly and implies, somehow, that the PC JX was developed in Japan to sell to the Australian market. Read any other site and you'll see this is plainly horseshit. The real story is easily inferred: IBM made a PC derivative with a Kanji codepage in an attempt to get Japan addicted to the IBM PC, and they failed. A lot of this was probably due to the already-extant software base.</p>
<p>The PC-98 used an 8086 and ran MS-DOS, but was not a PC-compatible. At release in '82 it actually didn't even ship with MS-DOS, it came with CP/M-86. MS-DOS didn't drop until the following year. There was also no intent of PC compatibility because the PC-98 was in development before the IBM 5150 was even released. It ended up being<em> </em>compatible in a very limited way because they just happened to select the 8086 processor, which could execute PC instructions, and when they later released MS-DOS for the system that created compatibility with x86 binaries as long as they strictly used the MS-DOS API.</p>
<p>A tremendous amount of DOS software would not have exclusively used the API. Furthermore, <em>none</em> of the PC's graphics were supported. The PC-98 graphics chip was completely incompatible with <em>all </em>IBM standards, including the original 1981 CGA spec. So any DOS app that did more than display text wouldn't have worked.</p>
<p>In other words, NEC beat IBM to the "serious home computer" market and IBM attempted to compete for <em>some fool reason </em>in a market they had zero chance of succeeding in. The PC-98 had <em>much </em>better graphics than the PC with CGA at the time; those would have been an embarrassment. The PCjr could at least do 640x200 at four colors, so that's... something. Why didn't they release this machine with EGA, which came out in '84 as well and came much closer in specs? I think because both were in parallel development.</p>
<p>The JX and the EGA card <em>both </em>dropped in October of '84, so the EGA would probably have been too early in development to depend on during this machines development, so IBM released it with basically the PCjrs capabilities. I think things might have been different if they'd thought ahead and waited just a little bit longer and gotten the EGA on board, but who called IBM good decision makers?</p>
<p>Intriguingly, the sound was <em>not </em>a competition factor. The original PC-9801 had even <em>worse </em>sound then the IBM PC, which you'd think is impossible but the PC actually used the programmable interval timer to let you pick a frequency for the PC speaker while the 9801 was fixed frequency. A serious sound chip wouldn't be added until '85 at which point IBM was finished in the Japanese market, as far as I can tell.</p>
<p>It's at this point in '85 that they re-released it in Australia. Why? I have no clue. Maybe they just didn't know what to do with the Australian market? If this machine failed in Japan, why try to popularize <em>another </em>PC-incompatible in <em>another </em>market? They removed the "high resolution" support as well, I'm told. I don't get it, but who called IBM good decision makers?</p>
<p>InfoWorld's John C Dvorak has some <a href="https://books.google.com/books?id=RS8EAAAAMBAJ&pg=PA70&lpg=PA70&dq=infoworld+ibm+pc+jx+australia&source=bl&ots=2GBY1yqb7H&sig=1bN8JRq_27z1VFavjXztqEGLrr4&hl=en&sa=X&ved=2ahUKEwjMsO_C3tHcAhVPoVMKHfyiCTEQ6AEwCXoECAgQAQ#v=onepage&q=infoworld ibm pc jx australia&f=false" rel="noopener noreferrer" target="_blank">interesting notes</a> on this in '86. He refers to it as the "JX Plus," a term I can't find anywhere else, suggests IBM wanted to release it in the US, and speculated it would have an improved CPU. I don't know how this figures in to anything.</p>
<p>What's that give us in the end? Oh, nothing at all. The JX is a boring piece of failed garbage, never good, never had a chance of being good, but it looks extremely cool.</p>
<p>
<span class="fr-img-caption fr-fic fr-dib fr-draggable" contenteditable="false" draggable="false" style="width: 696px;">
<span class="fr-img-wrap">
<a href="/uimages/1533328204172.png">
<img src="/uimages/1533328204172.png" />
</a>
<span class="fr-inner" contenteditable="true">
<a href="https://collections.museumvictoria.com.au/items/378572">https://collections.museumvictoria.com.au/items/378572</a>
</span>
</span>
</span>
<span class="fr-img-caption fr-fic fr-dib fr-draggable" contenteditable="false" draggable="false" style="width: 701px;">
<span class="fr-img-wrap">
<a href="/uimages/1533328222995.png">
<img src="/uimages/1533328222995.png" />
</a>
<span class="fr-inner" contenteditable="true">
<a href="https://collections.museumvictoria.com.au/items/378572">https://collections.museumvictoria.com.au/items/378572</a>
</span>
</span>
</span>
</p>
<p>It was also built by Panasonic - this is information that's hard to find On Line because Wikipedia's acceptance requirements and clubhouse behavior make it permanently incomplete and the "old computer info" sites are full of falsehoods, but if you <a href="https://books.google.com/books?id=RS8EAAAAMBAJ&pg=PA70&lpg=PA70&dq=" matsushita="" ibm="" jx="" rel="noopener noreferrer" target="_blank">read Infoworld</a> you can confirm this.</p>
<h2>Links</h2>
<p><a href="https://computers.popcorn.cx/ibm/jx/" rel="noopener noreferrer" target="_blank">https://computers.popcorn.cx/ibm/jx/</a> - More pictures</p>
<p><a href="http://nerdlypleasures.blogspot.com/2015/03/ibm-jx-pcjr-20.html">http://nerdlypleasures.blogspot.com/2015/03/ibm-jx-pcjr-20.html</a> - Much more info than this but also much denser</p>
</div>
2018-08-03-08-082018-08-03T08:08:00-07:002018-08-03T09:08:00-07:00gravislizardtag:gekk.info,2018-08-03:/blog/main/2018-08-03-08-08.html
<p>
<a href="/uimages/1533311615905.png">
<img src="/uimages/1533311615905.png" style="width: 796px;" class="fr-fic fr-dib" />
</a>
<br />
</p>
Making the FD-505 floppy drive work2018-08-02T14:08:00-07:002018-08-03T08:08:00-07:00gravislizardtag:gekk.info,2018-08-02:/blog/main/making-the-fd-505-floppy-drive-work.htmlI recently had the devil of a time trying to get a 5.25" floppy drive to work in my late-model Pentium 3 Dell, so here's some notes on That.
<div>
<p>I recently had the devil of a time trying to get a 5.25" floppy drive to work in my late-model Pentium 3 Dell, so here's some notes on That.</p>
<p>The machine I do my DOS'ing on is a Dell XPS T450:</p>
<p>
<a href="/uimages/1533245832717.png">
<img src="/uimages/1533245832717.png" style="width: 471px;" class="fr-fic fr-dib" />
</a>
<br />
</p>
<p> This machine came out in about 1999 and was intended for use with Windows 98. At this point in time computers were trending hard away from multiple floppy drives - dual CD-ROMs was not unheard of, which explains the second 5.25" bay along with the one filled by the stock CD-ROM, and the two 3.5" bays would be for a tape drive and... okay, I admit I can't figure out what they intended. It can't be a second floppy drive because this machine doesn't have a second FDD controller. Maybe a tape drive and a zip disk?</p>
<p>The BIOS only has a single floppy controller entry and the machine came with a stubby FDD cable with only one plug on the end. So running two disk drives on this machine is impossible. This makes sense because that was <em>mostly </em>an 80s thing - in the late eighties you needed two drives so COMMAND.COM could live on the first while you worked with data or an application on the second. In the mid-eighties though, you needed two FDD controllers because you needed to read both 3.5" and 5.25" disks.</p>
<p>What I <em>used </em>to believe was that 5.25" drives were all recognized by the PC BIOS as B:, because every single 5.25" drive I had back in the 90s was, even if there was no A: drive. What was really going on is that the 5.25" drive was below the 3.5" drive in all the machines I ever did this on, so it always got the connector before the twist:</p>
<p>
<a href="/uimages/1533246617543.png">
<img src="/uimages/1533246617543.png" style="width: 461px;" class="fr-fic fr-dib" />
</a>
</p>
<p>The twist flips the drive and motor select wires. So, in theory, all floppy drives think they're the only drive, and when the BIOS hits the lines for B, the drive at that position gets the signal as if it were A. My 5.25" drives were always in the middle, so they were always effectively B.</p>
<p>So what do you do on a system without a second controller? Well, in theory you just plug in the last connector, and that's that. But that didn't work for me, and I spent several frustrated weeks trying to figure out why.</p>
<p>To make a long story short: The cable I was working with was an unusual type that didn't <em>have </em>a edge connector on the end, only in the middle. I guess they wanted to save money and figured nobody ever put that drive on A:. So the drives I was hooking up were all getting assigned as B, which this computer doesn't have connected to anything.</p>
<p>A friend informed me that floppy drives actually have jumpers and can be pinned for A or B. I found this was true and experimented with it, but for reasons explained later (BIOS disk type detection) I failed to get this working, otherwise the story would end here.</p>
<p>This all would have been much simpler if not for the introduction of an externality, the <strong>TEAC FD-505 combo drive, </strong>which I switched to in frustration after neither of my plain 5.25" drives worked.<strong> </strong>This is a combination 5.25" and 3.5" drive:</p>
<p>
<a href="/uimages/1533247010281.png">
<img src="/uimages/1533247010281.png" style="width: 529px;" class="fr-fic fr-dib" />
</a>
</p>
<p>You'd think this is just two drives in a trenchcoat, but no, they did some shit. Instead of having separate connectors for the two disks on the back, this one has <em>one 34-pin connector for both:</em></p>
<p>
<em>
<a href="/uimages/1533247235288.png">
<img src="/uimages/1533247235288.png" style="width: 533px;" class="fr-fic fr-dib" />
</a>
</em>
</p>
<p>The drive and motor select lines are wired to the two separate drives and when the computer requests drive 1 it hits the 3.5" and when it requests drive 2 it hits the 5.25". Clever except, once again, the 5.25" is in position 2 and useless on this machine.</p>
<p>Unsurprisingly this drive does have selection jumpers, but they were confusing as hell.</p>
<p><a href="/uimages/1533305311211.png"><img src="/uimages/1533305311211.png" style="width: 300px;" class="fr-fic fr-dib" /></a>There's a block of 12 pins with four jumpers, not at all clearly labeled. Finding the docs on this drive was tough and I didn't understand them once I found them, so here's <a href="/misc/Teac FD505 Dual Function Combo Diskette.pdf" rel="noopener noreferrer" target="_blank">the datasheet</a> that comes up when you google this drive, absolutely useless, and here's the <a href="/misc/fd505 jumper setting.pdf" rel="noopener noreferrer" target="_blank">jumper diagram</a> someone scrounged up on a forum, which is barely better but still absolutely useless, especially because the diagrams for this drive are, I believe, simply wrong. Someone at TEAC typoed them.</p>
<p>What I found that helped in the end was a dusty Usenet post transcribed onto some kind of web forum, which I've replicated <a href="/misc/fd505.txt" rel="noopener noreferrer" target="_blank">here</a>, in which someone with the <em>opposite </em>problem made a passable ASCII map of their jumper positions. With this in hand at last, I replicated it on the FD-505, and got... no joy.</p>
<p>I was <em>pretty </em>sure I'd gotten it right, but every time I started the machine up it would do the same thing it always did, complain about something along the lines of, "Drive type set incorrectly." This had been going on for days with every drive and every setting I tried - the BIOS offers just 360K and 1.2M, which are indeed the only sizes, and both gave this error. Finally I threw up my hands, booted to DOS, typed in A:, and the goddamn thing worked.</p>
<p>Why is the BIOS giving this error? I have no idea. I probably had this setup working two weeks earlier than I thought, and just never tried ignoring the error and trying to index a disk anyway. On top of that, I think I was using a test disk that had actually gone bad. So this whole ordeal was extremely unpleasant, and I wanted to not forget how I resolved it and hopefully help someone else in the same boat. Good luck with this stupid bullshit!</p>
</div>
How This Blog Works2018-08-02T09:08:00-07:002018-08-02T14:08:00-07:00gravislizardtag:gekk.info,2018-08-02:/blog/main/how-this-blog-works.htmlI rolled this blog from scratch because all the available options are hot garbage. I am proud of it and I want to tell you how much it sucks.
<div>
<h1>history!!</h1>
<p>The 2010s web is infinitely harder to participate in than the 90s web. The reason for this has less to do with the tools and more to do with expectations. In 1998 you could get away with having a personal website that looked like this:</p>
<p>
<a href="/uimages/1533226773309.png">
<img src="/uimages/1533226773309.png" style="width: 518px;" class="fr-fic fr-dib" />
</a>
<br />
</p>
<p>This is very little more than H1, IMG, A, B and LI tags, and a couple style properties to float that image and a background image property on the body. Anyone who's touched HTML could make this in their sleep, and in the 90s this was acceptable.</p>
<p>If you wanted to go a little harder, you added a navbar. </p>
<p>
<a href="/uimages/1533227313929.png">
<img src="/uimages/1533227313929.png" style="width: 516px;" class="fr-fic fr-dib" />
</a>
</p>
<p>That navbar was in a frame. Now, there were issues with frames, but they acknowledged a design intent that many people shared. People want navbars. So when framesets were deprecated (culturally, if not yet technologically) in the 2000s, what did we replace them with? <strong>Absolutely goddamn nothing.</strong></p>
<p>Suddenly we wanted to have navbars, but there was <em>no way to do it</em>. Every method was a hack. Should you put the entire website in a table? Not if the sneering nerds have anything to say about it - that's "bad," in some vague undefined way. Should you put in two DIVs with inline-block? Good luck making the second one fill the rest of the screen. Should you put in a float: left DIV for the navbar? Maybe if you hate having free time. I made the quip yesterday that, "In the 2000s we deprecated framesets, creating the job of web designer." I was joking, but only just. You could nearly define "web designer" as "person who implements the Holy Grail Of Web Design."</p>
<p>So navbars aren't the only part of this but I think they illustrate a point. As time went on, sensibilities changed, but certain things have <em>never</em> gone out of style, and have also never been given any proper browser support. Consider this:</p>
<p>
<a href="/uimages/1533229205678.png">
<img src="/uimages/1533229205678.png" style="width: 481px;" class="fr-fic fr-dib" />
</a>
</p>
<p>Look at the top. See that black bar that runs from left to right? If you're coding a website from scratch you have to know that in order to make that you need to turn off the margin on the BODY tag; microsoft did this in '96 with "leftmargin", "topmargin" etc. in the BODY tag, and the navbar is a table with fixed cell widths. The body itself has a side navbar, incidentally, by using a table layout.</p>
<p>In 1996 this is what <em>corporate websites </em>looked like. Very few individuals had a website like this. But as time went on, things started shifting the window of what was acceptable. This was spurred by the appearance of Frontpage, Dreamweaver and, eventually, make-a-website services (what we know as e.g. Wix now) which offered strictly defined, unmodifiable templates that nonetheless uplifted the average individual with the ability to create websites that looked competent next to those from enterprises. This eventually dead-ended in Medium, which gives any random Joe the same tonal voice of the New York Times, but we won't get into that.</p>
<p>The second thing that happened was the explosion of dynamic websites. In 1998 your personal "journal" page was something you made in Frontpage, maybe, and you made a new journal entry by pressing enter twice at the top of the doc and typing in "<em><h4>June 12, 1998 - My journey to Alaska</h4></em>". All you needed was an FTP login to your web host.</p>
<p>By 2006 we expected something far more sophisticated. Look at this blog - it has tag fields which automatically generate index page, categories, created and modified dates that are in metadata fields, there's an index page with blurbs and "read more" links, and there's an archive page that shows posts by date. I've deliberately stripped down the stylesheet, but most of these blogs are far more complex, sometimes even implementing the entire "holy grail." Tumblr, blogger, etc. have navbars with a phenomenal amount of data, often to a fault. It's hard to say no to these things. They make a journal page feel far more like A Website.</p>
<p>So by the mid 2000s, expectations were incredibly high, and the tools... absolutely failed to keep up. In almost all cases these needs were satisfied by CMS', Wordpress leading the pack. Whether Wordpress is as much of a tire fire as I've been led to believe is a matter for debate, but the fundamental question is "Why should data that changes once a day at most be pulled from a database every single time it's viewed by a program with thousands of modules?"</p>
<p>So static website builders came into being. This concept goes way back (Frontpage itself is a static site builder), but in the late 2000s there was an explosion of static site builders created by the open source community. And I hate every single one of them.</p>
<h1>static site builders are bad!!</h1>
<p>I won't claim I've tried every one of them and the biggest reason for that is that they're almost all Node.js. I think Node is a war crime. I think it sucks and nobody should use it, ever. This is not a topic I want to debate, but I can tell you that a neophyte trying to use it will be absolutely boned in plenty of cases. It is arcane horseshit. So it solves nothing as far as allowing non-webdevs to participate in the web.</p>
<p>As a webdev (not by trade, but i've dabbled for most of my life and built plenty of dynamic and static sites and some apps for work) I understand these Node apps but hate them for unrelated reasons, so I looked for other options a year or so ago and found very little other than Pelican. Pelican's pretty nice! All you do is select a template, then put markdown or HTML files in the 'content' directory and run a command to have it generate an entire site structure for you. Terrific!</p>
<p>The problem is getting content <em>into </em>it. Sure, I can open an HTML file in notepad++ and just type, but like, why? We've had WYSIWYG since the 90s, and everything except Frontpage  (debatable) outputs perfectly good code. I can write HTML in my sleep, but I don't fucking want to. That's extra work the computer can do for me, why in <em>hell</em> would I do it myself? Well, The Web seems to disagree, as they usually do, that humans should use ever-improving tools, and instead thinks we should use stone knives and bear skins to build spaceships.</p>
<p>I really dislike markdown. I can't even fully tell you why. Maybe because I have been writing HTML since I was 12 and markdown feels like a step backwards. It's not actually <em>easier, </em>in my eyes, to write markdown - I still have to write opening and closing tags, and I write at 140WPM so whether they're one character or six doesn't matter to me. The problem I <em>actually</em> need solved for web editing is getting images into the doc and versioning. Nothing solves this in a way I'm satisfied with.</p>
<p>Getting images into a hand-written doc means manually uploading the image to the server, manually resizing it on my PC, manually uploading a thumbnail, then manually writing out <strong><a href="/images/thumbs/chrome_example.jpg"><img src="/images/chrome_example.jpg"></a></strong> and that's just too much of a pain in the ass. It's the breaking point for me. I have goddamn ADHD, I'm tired, and I don't have time for that bullshit. So that's why I didn't have a blog until now.</p>
<h1>i got fed up!!</h1>
<p>I was so sick of this, I was so unbelievably sick of it. I deserve better. I don't want to run a CMS with the potential security issues and <em>massively overwrought</em> featureset, I don't want to manually upload and resize images, and I don't want to have to save my own backups all the time. I hate all that. I hate it to death.</p>
<p>A couple days ago I finally lost my last ounce of patience for this situation and decided to attack the problem. I started by obtaining a copy of <a href="https://froala.com" rel="noopener noreferrer" target="_blank">Froala</a>, a WYSIWYG HTML editor made in JS. This is not a free tool ($144 - I am going to buy a license shortly), and you could use any WYSIWYG editor honestly - most of what I'm doing is not unique to this editor. Also, JS HTML editors are horrible if you're doing anything sophisticated. The code output is clean but they get easily confused and rarely have reasonable keyboard shortcuts.</p>
<p>I did not want to build an "app." I hate webapps, and this was not an academic pursuit - the purpose of this was to <em>get something done</em>, not accomplish a theoretical technological goal. If I was getting paid I would make an "app" for this, maybe. What I wanted to make was the bare minimum to accomplish my goal, so I implemented everything in plain Python CGI.</p>
<p>I have a <strong>create.py </strong>that accepts <em>project</em> and <em>doc </em>parameters. From there it reads in <em>project-staging/[project]/content/[doc].html,</em> extracts the metadata fields, then reads in <em>edit.html, </em>which contains a series of text fields for metadata and a textarea that Froala attaches to:</p>
<p><a href="/uimages/1533232602364.png"><img src="/uimages/1533232602364.png" style="width: 621px;" class="fr-fic fr-dib" /></a> <a href="/uimages/1533233803986.png"><img src="/uimages/1533233803986.png" style="width: 618px;" class="fr-fic fr-dib" /></a></p>
<p>The values for all these fields are replaced by the metadata and body from the selected document. If the document doesn't exist, it uses blanks for these fields so a new doc can be created.</p>
<p>Froala has a save feature, but this could be easily implemented on its own with a simple XHR request, I just used Froala's since it was there. It also supports autosave, which I may implement later. The endpoint for the save feature is <em>write.py, </em>which also accepts <em>project </em>and <em>doc </em>parameters. It makes a backup of the targeted file in /backups, then opens the targeted file, generates a new metadata tag set and body from the POSTed data, and writes it back to the doc. So now I can create and edit files. I've protected this directory, the output is static with no reference to the tools used to create it, and there's no associated database or server process to attack, so this is secure.</p>
<p>Next I had to implement the feature that I chose Froala for: drag and drop image upload. When you drop an image on Froala, it injects the IMG tag into the HTML, then opens an XHR to an arbitrary URL and POST-uploads the image. That endpoint can then reply with a URL where the file can now be reached, and Froala updates the IMG tag SRC attribute to that address. I created <em>image.py </em>to accept these. It stores everything in /uimages using the original filenames, unless there's a conflict, in which case it creates a random filename and returns it.</p>
<p>It also includes a "thumb" attribute in the returned json. I hooked the image.inserted event in Froala and when the uploaded image is injected, I adjust its SRC to the thumb value and then wrap it with an <a> pointing to the uploaded file. I don't actually have a thumb generator right now, but once I do the infrastructure is there to integrate thumbnails.</p>
<p>That's it. All I do at that point is run the update script, which I <s>might be able to hook up to "test deploy" and "publish" buttons in the editor, though I have to figure out how to work my way into a virtualenv from a Python system call</s> was able to create a couple more "draft.py" and "deploy.py" scripts to talk to. There we go, a blog built out of less than 300 lines of Python on top of a prerolled system that does everything I want it to, and I never have to touch a command line.</p>
<p>
<a href="/uimages/1533242859137.png">
<img src="/uimages/1533242859137.png" style="width: 401px;" class="fr-fic fr-dib" />
</a>
<br />
</p>
<p>The only elaboration I might add is a generic file upload feature at some point, but I do that rarely enough I'm comfortable just uploading and linking those by hand.</p>
<h1>this sucks so much!!</h1>
<p>I shouldn't have had to do this. This was stupid. This was a waste of my time. I am <em>furious </em>that in 2018 the intelligence level of web servers and browsers is still retained at a 1980s level, as if websites are still built around tiny handfuls of resources and huge monolithic HTML docs with very little formatting written in plain text editors. This is not realistic! This does not reflect the improvements in technology and expectations of the last 30 years, and I think it's pathetic that only people who can do something like I did get to have a reasonable time creating and maintaining websites.</p>
<p>All the functionality I implemented should have been things my web browser could do with authenticated, SSL-encrypted GET, POST and PUT statements. That's how hypertext was supposed to work, and the technology exists, but nobody will admit that the web isn't what it was in 1995 and <em>we need better god damn tools.</em> Node and web-based editors are not the solution, they're just a half-ass, hacked-together mess that works within a structure we created and perpetuate and that refuses to actually challenge a status quo that actively makes life worse for everyone.</p>
<p>As a case in point: Froala's italics behavior is <em>completely </em>random. I can type in text in italics, then Ctrl+I and watch the toolbar italic icon turn off, then when I type again italics are back. In the implementation I'm using on a project at work this has never happened <em>once. </em>So I've taken to the practice of continuing to type after I'm done with the italics, then selecting back to the last word I typed and un-italicing, and that works pretty well, except on the last paragraph it just stopped working. No amount of ctrl+I or erasing and retyping would help. I had to go to HTML view and manually move the <i> to the right position.</p>
<p>This is pathetic, and unnecessary. There are WYSIWYG editors that have been in development for <em>years </em>and still have these problems, but Microsoft Expressions Web 4 is a native Windows app and it has these errors <em>exactly never</em>. Dreamweaver didn't have these errors. Frontpage barely had them. But none of these solve this problem either because they aren't <em>designed </em>around an intent of feeding a static site generator. I tried using Expressions and it's just not targeted for making a dynamic-esque website like this.</p>
<p>I have had fantasies about fixing this myself. With some minor elaborations on the script i've made so far, I could make this far more robust and automated and user-friendly, and then package a tiny webserver, Python, bundle of scripts, etc. in a portable package that anyone could install, like Node but not a slow, complicated, memory-hogging heap of shit. And then I ask myself why it would be reasonable for one spiteful dick to fix a problem that thousands of Industry Influencers conspired to create through inaction and cowardice, and I go work on other projects, because down that road Github lies.</p>
</div>
Koala Pad2018-08-01T20:08:00-07:002018-08-04T14:08:00-07:00gravislizardtag:gekk.info,2018-08-01:/blog/main/koala-pad.htmlA week or so ago I was on eBay and stumbled across a thing called a Koala Pad. I had seen and heard of these before - it's basically a graphics tablet from 1983 that came out for damn near every home computer platform. I had seen them for the C64 and Apple II, but this one caught my eye.
<div><p>A week or so ago I was on eBay and stumbled across a thing called a Koala Pad. I had seen and heard of these before - it's basically a graphics tablet from 1983 that came out for damn near every home computer platform. I had seen them for the C64 and Apple II, but this one caught my eye.</p><p><a href="/uimages/1533183092666.png"><img src="/uimages/1533183092666.png" class="fr-fic fr-dib" data-status="-1" data-status_message="failed to execute" style="width: 571px;" /></a></p><p>See in the lower right?</p><p><a href="/uimages/1533183141951.png"><img src="/uimages/1533183141951.png" style="width: 300px;" class="fr-fic fr-dib" data-status="-1" data-status_message="failed to execute" /></a></p><p>I had never seen one of these available for the IBM PC. Now, the PCjr is not quite a PC; it's a weird, half-baked entity IBM made to try to compete in the home computer game market. It failed, but left a small legacy of more or less proprietary software behind.</p><p>What's strange about this listing though is that the stick itself <em>isn't</em> proprietary. And the PCjr joystick interface absolutely was - it was a horrible little thing: </p><p><a href="/uimages/1533183758451.png"><img src="/uimages/1533183758451.png" style="width: 300px;" class="fr-fic fr-dii fr-fir" data-status="-1" data-status_message="failed to execute" /></a> <a href="/uimages/1533183827507.png"><img src="/uimages/1533183827507.png" style="width: 428px;" class="fr-fic fr-fil fr-dib" data-status="-1" data-status_message="failed to execute" /></a></p><p>The connectors on the back of the PCjr were all completely identical, and the connector itself was terrible - basically just two rows of pins, like a DIP header on a circuit board. One of the cheapest connectors I've ever seen, and the stick in this listing <em>doesn't </em>have it:</p><p><a href="/uimages/1533184089004.png"><img src="/uimages/1533184089004.png" style="width: 300px;" class="fr-fic fr-dib" data-status="-1" data-status_message="failed to execute" /></a></p><p>See, that's an ordinary IBM PC gameport, the 15-pin that's on everything except the Jr. So it appears this eBay seller has a whole mix of things - a PC Koala Pad, the <em>PCjr-specific disks, </em>and this listing <em>also </em>included the C64 Pad and cartridge. This guy must have cleaned out an estate sale from a collector of these things.</p><h1>Purchased</h1><p>So I ordered it, and they arrived a few days later and I confirmed my suspicions, it really was as described. I started out by trying the C64 software and hardware.</p><p>It worked perfectly:</p><p><a href="/uimages/1533184277927.png"><img src="/uimages/1533184277927.png" style="width: 300px;" class="fr-fic fr-dib" data-status="-1" data-status_message="failed to execute" /></a> <a href="/uimages/1533184290051.png"><img src="/uimages/1533184290051.png" style="width: 300px;" class="fr-fic fr-dib" data-status="-1" data-status_message="failed to execute" /></a></p><p>Well, "perfectly" isn't quite the truth. You can see some glitching around the upper edges of the "hole" in the hill; this is where the pad apparently splattered some glitched pixels, a phenomenon another Koala Pad owner told me on Twitter was normal. The pad itself is also rumpled - the plastic top surface is delaminating, a phenomenon I don't know if I can stop or fix. But honestly I doubt people ever got much better out of this thing than you see above, so I call this a win.</p><p>Turning my attention to the PCjr model, I had to tackle the software problem. The software, KoalaPainter, came on a 5.25" disk, and my Dell had no 5.25" drive. I'll make a separate post about that so it'll be easy to find later, since I'm sure I'll need it again. Suffice to say it was a tremendous pain in the ass to get my 5.25" drive working on a machine newer than the early 90s.</p><h1>Trouble!!</h1><p>I popped in the KoalaPainter disk and tried to read it, and just got "Not ready reading drive A." The disk light wasn't even coming on. I tried ejecting the disk and found out it was stuck. I tried a few more times with no success, then popped the drive out of the machine, reached inside and shoved it out from the other end, fortunately with success.</p><p>I took a look at the disk and realized someone had set something on it. The edges were curled up, the disk was completely bowed. I tried straightening it, but it's basically impossible to do this with old floppies. I don't know if the plastic was stiff and brittle to begin with or if 30+ years did that to it, but if you try to bend 5.25"s they just stay the way they are, or shatter completely.</p><p>The only real option after that was a transplant. I found a blank disk, verified it slotted in and ejected okay, and pulled up the heat seals. It was a gigantic pain in the ass; one of the seals just shattered and gave me a hell of a time getting that side released, the other two were so inelastic I could barely get the sleeve open. I pulled the disk out of the donor sleeve and repeated the process on the KoalaPainter disk, then very, very carefully lifted the disc itself out of one and slipped it into the other.</p><p>I put it into the drive and this time it seated okay. I tried to index the disk, and this time I got a listing.</p><p><a href="/uimages/1533184869675.png"><img src="/uimages/1533184869675.png" style="width: 385px;" class="fr-fic fr-dib" data-status="-1" data-status_message="failed to execute" /></a></p><p>This was promising, but when I started copying the files off I immediately began getting read errors. I retried several times with no success. I popped the disk out and examined it, and the surface showed plenty of worrying signs - splotchy looking white crud all over it that many say is probably mold. I figured I had little to lose however and tried swabbing it off with a q-tip, carefully wiping from center out (does this really make a difference? i doubt anyone has tested in a lab in 30 years).</p><p>This time when I put the disk back in I was able to copy off several .PIC files, but when I hit DRAWDATA.DAT it crapped out again. I repeated the process, this time swabbing the disk more thoroughly, and then I was able to copy off everything <em>except</em> KP.EXE - the most important file on the disk, of course. </p><p>At this point I figured, well, this software's online. I remembered stumbling across it when I was looking for the manual for the C64 version, so I knew I could just download an image if it came to it. I <em>did </em>want to get an actual copy of the disk anyway though, so I went for the nuclear option. Since the disk was clearly filthy, I figured I'd try actually washing it.</p><p>Some googling came up with a page suggesting that either isopropyl, or water with light soap was safe enough. I wasn't sure if I should trust it, but nothing to lose, right? So I slipped the disk out again, this time onto a T-shirt (I've never encountered anything with less free lint), sprayed some iso on the fabric and wiped it all down. Flipped over and repeated, then put the disc back into the sleeve. </p><p>Nothing changed. I retried several times - 10 or 20 - and then, crestfallen, went to the internet and searched for the software.</p><p>After twenty minutes I accepted, to my deep horror, that this disk was <em>not online</em>, and I had just possibly wrecked any chance of <em>ever </em>recovering it. For all I knew, nobody else had this at all, and now it was lost to time. </p><h1>Last Hope!!</h1><p>I got pretty distraught and started trying to copy the files over and over and over, hitting retry again and again and again. I popped the disk out and back in, relisting and recopying repeatedly, dejected. And then, on the fourth or fifth eject and re-insert, I got a "KP.exe copied" message.</p><p>I couldn't believe it had worked, and I still didn't until I edited the file, confirmed I saw the DOS EXE header at the top, then scrolled to the bottom and saw the runtime library strings. I tried running it and just got a <strong>*** STACK OVERFLOW *** </strong>error - but this was a program designed for an 8088 running on an 800mhz P3, so I figured that might be normal.</p><p>I made sure I had copies of every file on the disk, then started the machine in Win 98 and copied C:\KOALA to my modern PC. I started up DOSbox in PCjr mode, executed KP.exe, and:</p> <p><a href="/uimages/1533184869675.png" /><a href="/uimages/1533185372317.png"><img src="/uimages/1533185372317.png" style="width: 435px;" class="fr-fic fr-dib" data-status="-1" data-status_message="failed to execute" /></a></p><p>This was a huge success! Unless there's corruption in the middle of the file, it looks like I got a clean copy! I immediately uploaded it <a href="https://archive.org/details/KoalaPainter-PcJr" rel="noopener noreferrer" target="_blank">to the Internet Archive</a>, in case my hard drives all died at once, and did some tests.</p><p>I don't have a gameport on my desktop PC, so I tried a gameport→USB adapter. I didn't expect it to work, and I wasn't surprised when Windows joystick diagnostics showed the X and Y looping rapidly within the test field when I drug a stylus across the Pad. I noticed - unsurprisingly as well - that it looked like it was tracking, but every 1/2" or so the input jumped to zero and began tracking across again. This isn't a joystick, so that's not remarkable.</p><p>I tried using KP within DOSbox, but through the USB adapter and Windows joystick interface it was doing the same thing and I couldn't hit any of the UI buttons, though I did manage to knock it into draw mode and get a few dots on the screen. I actually also tried DOSbox on the Windows 98 machine, which has a native gameport, and the same thing happened, so I suspect this is an artifact of the Windows joystick API.</p><h1>Further Investigation!!</h1><p>The next day, with a fresh mind, I considered how I would test KoalaPainter itself to see if the EXE really was on the up and up. To do this I needed to be able to interact with it, which didn't necessarily mean having a Koala Pad working. I thought, if I could get a mouse to joystick interface, that might let me try out all the functions of the software. Since a mouse and a joystick are both absolute-input devices (the mouse <em>itself </em>isn't, but the <em>cursor </em>is), I knew this was hypothetically possible.</p><p>Software to do this is exceptionally rare and hokey - not at all what I wanted, if it would even work. I quickly turned to a different strategy, seeing if I could modify DOSbox itself. After an hour or so of hacking on the DOSbox source I was able to implement a crude mouse-to-joystick mechanism, enough to reflect the mouse coordinates within the DOSbox window reliably in a DOS JOYTEST.EXE app.</p><p>I started KoalaPainter and was overjoyed to see the cursor within the app move in time with the mouse cursor. It was very jittery though, and was tracking at about 50% proportions - with the mouse in the lower right corner, the KP cursor was roughly in the middle of the screen. I adjusted the multiplier for the conversion code and on the next execution I was pleased to see that the positions now matched up almost perfectly, although the jitter was still there.</p><p>The mouse buttons won't reliably trigger inputs, and I'm not sure what's up with that. I have not figured this out, and it has basically stopped me from further experimentation. I am able to interact with UI elements after a lot of hammering on the buttons, and one time I got it into drawing mode and got a few speckles on the screen, but I'm not really sure why it's not working better than this.</p><p>One thing I <em>did </em>discover, when I changed the CPU cycle count in DOSbox on a whim, is that the gameport read routine is definitely timed based on CPU cycles. When I clock up or down, the "multiplier" of the ratio between the mouse and the KP cursor position changes. So my code probably wasn't wrong to begin with, the program was just running at the wrong speed. This gives me doubt that it can <em>ever</em> be made to run correctly on DOSbox - timing-critical things simply can't be made reliable on that emulator, so I'm not likely to try much further. It was however an extremely entertaining experiment.</p><h1>More Possibilities!!</h1><p>From further reading it sounds like the Tandy 1000 is notionally compatible with the PCjr. I have a Tandy 1000, but I suspect I would see the same timing issues with it - my understanding is the Tandy runs at twice-ish the clock speed of the PCjr's 8088, and for some reason I can't change that speed setting like I'm told I'm supposed to be able to - the MODE command just doesn't exist.</p><p>Also, the connector is incompatible, so I'd need a PC→Tandy gameport adapter, or to build one. Honestly this isn't a bad idea, since my Tandy sticks broke very quickly (all joysticks made in the 80s, no exceptions, were hot flaming garbage.) But it prevents me from moving forward on testing this for the moment.</p><h2>Update 1:</h2><p>I tried the software on the Tandy and was pleased to find it executes with no problem. I haven't built a Pad adapter yet, but I was able to plug in a joystick and I can get about 30% screen coverage with it. I also figured out how the menu works, it's different on each platform and the manuals for KP are lost to time. The PCjr one was confusing to me as well.</p><p>To get from the menu to the canvas in the <strong>PCjr version</strong>, move your cursor to the far upper left and hit a button. To do it from the <strong>C64 version</strong> hold the stylus in the lower 10% of the pad near the center; you'll hear a beep, and you can now press a button to switch views. Return to the menu by using the same process in reverse.</p><p>With the joystick unable to get to the color palette I wasn't able to test much, but I was able to select fill, get to the canvas and fill the screen successfully.</p><p>I am not convinced the Tandy is running at the correct speed still. I googled it and <a href="http://www.oldskool.org/guides/tvdog/1kfaq.html#II.F.4" rel="noopener noreferrer" target="_blank">found a page</a> that strongly suggests my Tandy has had the OS replaced since the SLOW, FAST and MODE commands aren't present and confirms the machine starts in the fast mode. I tried the linked speed adjustment tools and I don't see any difference in the program performance - maybe these are not truly using the Tandy 1000HX's approach, so I might need to retrieve the original OS disks to resolve this.</p><p>I suspect if I fix the speed issue, the joystick would be able to navigate the full screen and I could paint with it. Obviously the goal is to have the Pad working but I would like to be able to use the joystick in a pinch.</p><p>I have tried adapting the PCjr joystick to the Tandy port using clip leads but it was very shaky and I'm not convinced I even got the pinout right. More experimentation later.</p></div>
Intro2018-08-01T00:00:00-07:002018-08-01T00:00:00-07:00gravislizardtag:gekk.info,2018-08-01:/blog/main/intro.htmlThis is my blog, about whatever
<div>
<p>
<img src="/uimages/tmpm9jpr8.png" style="width: 300px;" class="fr-fic fr-dib" data-status="-1" data-status_message="failed to execute" />
</p>
<p>
<br />
</p>
<p>I decided to create a blog for longer things that don't fit in tweets. I was absolutely unwilling to use wordpress et al so I rolled something myself from Pelican. I'm not going to go into the details and it's not fit for public release but it works for me.</p>
</div>