Responsibility of the Network

Good Morning from my Robotics Lab! This is Shadow_8472, and today I have a doozy of a network week to cover. Let’s get started!

Meet the Computers

  • Cerberus – the main star today. It is our new hardware firewall running OPNsense
  • Red Router – a tp-link gaming Wi-Fi router fancied up beyond what it should have been
  • LAB – my homelab with a few servers
  • LAN – everything else connected via Wi-Fi or Ethernet

Network Implosion

It all started with revisiting a .lan domain. Cerberus’ extensive webUI left me with the hunch I’d need one machine in charge of DHCP assigning dynamic IP addresses. Red Router’s “operation mode” to work as an access point was hidden in literally the last menu to click through.

It was afternoon and no one would be using the network for the 30 seconds to 5 minutes I estimated switching the LAB and LAN Ethernet cables from Red Router over to Cerberus would take. Nope. No traffic made it through. DHCP mis-configuration? Cue a slow back and forth, bopping a setting from a workstation and trying a different physical configuration. Eventually, Cerberus ended up on my desk with Red Router talking directly to our ISP’s gateway/modem.

Order of events is a bit fuzzy from here, but when the Wi-Fi stopped working, I was without a good access to online answers. I worked the problem into the night. Around 1:00 AM, I knew I had done too much for a clean reversion. For two hours, I worked in loops hoping to spot something different. So much waiting! Cerberus would behave on my desk, then fail when redeployed. Worse: when I re-connected all the wires to Red Router, it started dancing between 192.168.0.1 and 192.168.1.1 every 45 seconds or so. I configured its IP manually, but gave up on Internet by morning at 3:00 AM, preparing to concede to my father’s suggestion earlier about hiring a professional to untangle my mess.

The Next Day

Newtork Loop. In my brain fog, I had Red Router talking to itself on a cable leftover from removing Cerberus for the night. With the house to myself for several hours, I alternated between bursts of intense diagnostics and mental processing. Somewhere in there, I rebooted the ISP’s modem.

Around noon, I realized the extra ports on Cerberus aren’t a switch as is Red Router’s default configuration, but were following firewall rules – which explained its behavior the previous day when I tried a computer from LAB without anything in-between. At around 3 PM, I got a Discord notification while mentally checked out, letting me know the network was back on.

6 PM on the second day: I situated my workstation in Cerberus’ LAN port and a Raspberry Pi in one I named LAN2. I’d previously copied firewall rules from LAN to LAN2 and LAB, but to no obvious effect – until I had the two computers ping each other. LAN2 failed as expected, but LAN’s ping was returned. I corrected the interfaces’ rules to allow them to reach out, and that was it.

Fallout

Without going into too much detail, a subnet shift like this is a major undertaking for networks with static IP servers on them. Not only do the network and computers need to be adjusted, but all traces of the old subnet need to be corrected. NFS clients needed to be told where the server was now, and the NFS server shares needed to be updated about what IP’s were allowed to mount them. I also still have Bitwarden to clients to update at my leisure.

Takeaway

OPNsense is a heavy weight in terms of configuration options. It has a learning curve compared to products simple enough to for Grandma and Grandpa to use. I may have solved my own emergency, but it may be wise to get someone looking at it professionally anyway to grade my work and give me some pointers on rootless Podman mounting NFS shares, or other long-term places where I’ve gotten stuck.

Final Question

I admit: networking is more fun than I gave it credit for before I knew basically anything. I still find it a bit taxing to mentally reach around my mental map, but I manage. How do you visualize networks?

Sonic 3 AIR (Linux, Wii/Mega Collection Method)

Good Morning from my Robotics Lab! This is Shadow_8472 and today I am using a hacked Wii and Linux to rip Sonic Mega Collection for a ROM to play Sonic 3 AIR. Let’s get started!

I am not a lawyer, nothing in this blog post is legal advice.

Say what you like about the GameCube, it was my sister’s and my first video game console. Among our initial collection was Sonic Mega Collection, a library of Sonic’s Sega Genesis titles. The games played poorly with an analogue stick, and I lost interest after never getting past a second zone.

Years later, a university friend re-introduced me to classic Sonic games through the world of emulation. I found myself browsing Sonic Retro and trying out several ROM hacks of base games I owned back home. Of note: fan content is a legal gray area some companies like Sega happily leave gray – letting fans explore their IP (Free advertising, anyone?) while leaving themselves room to threaten troublemakers. That said, the unwritten code of conduct for handling hacked/leaked prototypes is:

  1. No selling hacks.
  2. No advocating piracy.
  3. No redistributing raw ROM’s.
  4. Don’t ask, don’t tell.
  5. Own a legit copy if available.
  6. Support quality official ports.

That said: Sega has hired Sonic Retro talent to port their classic games.

Sonic 3 Fan Projects

Most ROM hacks on Sonic Retro are outright love letters to their respective base games, but my hands-down favorite was Sonic 3 Complete (S3C) [1]. This hack aimed to restore the game’s original vision before time constraints split it into Sonic 3 (S3) and Sonic & Knuckles (S&K) with the option to combine their cartridges into Sonic 3 & Knuckles (S3&K). S3C added a game select, custom level transitions, fine tweaks to revert assets, and an option to move Flying Battery Zone to just before Ice Cap so Sonic can snowboard down on a hatch he knocked off in a cutscene. Polishing continued until it approached the Genesis’s ROM size limit.

When the S3C team signed off in 2013, they named another project as their successor: Sonic 3 Angel Island Revisited (Sonic 3 AIR/S3AIR). In addition to similar polish to S3C, Sonic 3 AIR uses a newer engine with widescreen and 60 fps support. Mods are also supported. The catch is it requires an original S3&K ROM for game files. This used to be available from Steam, but I had to dump my physical copy using the Wii I hacked last week.

Following a tutorial as can be found on GameBananna (linked in Works Cited) [2], I installed CleanRip and backed up four of my GameCube disks – Sonic Mega Collection among them. Each game gave me three files: GAME-dumpinfo.txt, GAME.bca (data about the copy protection), and GMAE.iso (the game data itself). The .iso doesn’t mount, but Dolphin emulator lets you browse its file system anyway. I located S3&K’s .dat file and set that aside.

GameBananna’s tutorial breaks on the next step. It calls for a converter by GreyRouge [3], but the link is broken and the forum has been abandoned since early 2023.

https://zenhax.com/viewtopic.php?t=695

Instead of finding four good captures on WaybackMachine, I the topic number into a working URL [3]:

https://zenhax.com/viewtopic.php@t=695.html

But I wasn’t done yet. GrayRouge used an old version of Visual Studo, but some research, I got it working in normal C++ by making the following changes:

Replace: #include "stdafx.h"
with: #include <iostream>
and #include <string>

Replace: int _tmain(int argc, _TCHAR* argv[])
with: int main(int argc, char* argv[])

The compiled program worked got S3&K loading in an emulator. I posted my modifications to Reddit where my hope is to be of help to someone. S3AIR was stubborn about looking for the ROM in my Steam files, so I gave it a link.

~/path/to/Sega\ Classics/uncompressed\ ROMS/Sonic_Knuckles_wSonic3.bin

Takeaway

My original motive for following through on this project was on the off chance my PinePhone could run it on the go. Yeah, no. I tried my best on a time crunch, but I did spot a warning in S3AIR’s documentation that it wasn’t going to run on ARM processors.

Also: the full program code is on Reddit. Someone re-uploaded it after the original link broke, but I lost the link to that.

Final Question

Are you on a journey similar to mine? If I was of any help, please feel free to let me know in the comments below or on my Socials!

Works Cited

[1] Sonic Retro, “Sonic 3 Complete,”Sonic Retro, Jan 12, 2022.[Online]. Available: https://info.sonicretro.org/Sonic_3_Complete. [Accessed: Aug. 19, 2024].

[2] Tyranger, NickyFan7, “Ways to get a Sonic 3 & Knuckles ROM (Post-Delist),” gamebananna.com, Apr. 30, 2022. [Online]. Available: https://gamebanana.com/tuts/14939. [Accessed: Aug. 19, 2024].

[3] GrayRouge, “Sonic Mega Collection (GC) dat files,” zenhax.com, Mar. 7, 2015. [Online]. Available: https://zenhax.com/viewtopic.php@t=695.html. [Accessed: Aug. 19, 2024].

Finally Passing Wii Hacking 101

Good Morning from my Robotics Lab! This is Shadow_8472 and today I am actually hacking my Wii. Let’s get started!

!!ALERT!!

THIS BLOG POST ABOUT WII HACKING IS UNMAINTAINED!! While unmaintained documentation can be entertaining or contain useful hints not found anywhere else, it often lacks nuance and is best treated as unauthoritative. Be careful with it. Be responsible with it. This applies to all media forms – especially YouTube.

As of writing in August, 2024, the authoritative site is https://wii.hacks.guide/ [1].

Seriously. As with installing Linux or any activity that disregards OEM walled gardens, you take a risk by hacking your Wii. Many generous people have put years of effort into minimizing these risks, but at the end of the day, the only one to blame for bricking your device is you. The community may back you up on a volunteer basis with no obligations. You own your hardware. Have fun!

With that out of the way…

Recap

A video game console must be built like a castle to protect company profits. Security must stop pirates while being as invisible as possible to legitimate customers. The Homebrew community doesn’t cleanly fit into either category; it climbs the castle walls for fun, but in ways that aim to complement the original product.

I bought a Wii from someone in my area a couple years back with the intention of hacking it. I’ve researched it sporadically since then, building confidence, then backing out each time. Last time, I made it so far as to install the Homebrew Channel on Dolphin Emulator. This time, I make it all the way.

The Homebrew Channel

All video game consoles are just specialized computers. The Wii just didn’t hide this fact as much as most previous consoles. Its operating system boots to a menu with sever channels I mostly ignored, but nonetheless shaped the system’s identity. Perhaps the most [in]famous channel is The Homebrew Channel, a menu for 3rd party software and the primary objective for this week.

There is no direct way to install the Homebrew Channel, so an exploit must be used. The Wii has a rich history of exploits that rely on specially corrupted saves of specific games, but the three in use today only require an SD card formatted to FAT32 (LetterBomb and Wilbrand) or an Internet connection (str4hax). The idea is to load HackMii and install The Homebrew Channel from there.

Glossary of Terms

The Wii uses a lot of abbreviations. Refer to this section if you see any.

  • Brick v. – to mess up software so bad, the system won’t start. It may as well be a clay brick.
  • CIOS – Custom IOS
  • IOS – Acronym unknown. Pertains to files in Wii’s firmware (Has nothing to do with Apple’s iPhones)
  • NAND – System memory
  • NUS – Nintendo Update Server
  • NUSD – NUS Downloader
  • WAD – Wii Application Distribution
  • YAWMM – Yet Another Wad Manager ModMii Edition

Groundhog Exploits

First of all, what kind of Wii am I hacking?

  1. White with GameCube adapters
  2. US Serial number
  3. Firmware upgraded to 3.3U to play Animal Crossing: City Folk (U for US region)
  4. Bought 2nd hand, but presumably stock (unmodded)

As part of my setup, I joined the r/Wiihacks Discord server. The community was friendly enough, but I let myself be pressured into updating to firmware version 4.3U, but only once I’d confirmed my serial number matched US region. Updating to or past 4.2 carries a slight chance of bricking in exchange for simplified research. I was OK, but I strongly advise you to research how to update to 4.1 and hack from there.

I started with str4hax, which aims the Wii’s DNS at a special server that replaces the User Agreement with Dashie (Rainbow Dash from My Little Pony: Friendship is Magic) and takes one to two minutes to glitch the system into loading a script that boots the Wii into BootMii. I saw the exploit performed on a YouTube video, so I knew to expect rainbow static with green flashes. BootMii hung (got stuck) on its anti-scam warning, so I tried it around a dozen times in total.

What I didn’t understand at the time was the difference between exploit and payload. This difference was more apparent after running Wilbrand, a Wii Message Board based exploit named after the inventor of TNT. Using a bunch of special information including a Wii’s MAC address, it generates a special letter stored on a properly formatted SD card. When this letter is opened, the Wii crashes and loads boot.elf from the SD card. It took several tries to format my SD card, but once I had Wilbrand working, it was a much faster turn around. When it works correctly, HackMii should load quickly.

Neither of these were perfectly consistent:

  • str2hax hung on Dashie for me once and a few times the script to load HackMii failed trying to change Internet settings.
  • Wilbrand sometimes gave me a black screen and a blinking blue disk drive (.5 sec. on/.5 sec. off). I also had it drop TV signal in a different fail state.

HackMii Being Stubborn

Whichever exploit you use, when HackMii loads correctly, it puts a scam warning on screen, and after 30 seconds (or until HackMii finishes loading) it should tell you to press 1 to continue on to installing The Homebrew Channel and BootMii.

In my experience though, HackMii hung on this screen with no visual feedback besides the remote being stuck on (working correctly, HackMii does disconnect the remote). I was stuck here for over a day. Wisdom gleaned from community documentation and forum posts say this error is caused by one or more cIOS (or custom IOS) present on the Wii, which can be an indicator of piracy. The accepted diagnostic tool is SysCheck, but its documentation says to load it from The Homebrew Channel I haven’t installed yet!

Under advisement, I was directed to try using ModMii, a tool intended exclusively for Windows. Running under WINE, the CLI edition of version 7.0.2 wants to update to the latest version: 7.0.2. It also failed to set up its download list. The GUI edition was slightly less buggy in that it recognized it was up to date. I tried a few versions of WINE/Proton using Lutris to switch between them, but nothing worked. I was not desperate enough to explore trying .net to see if that made ModMii run. WINE rating: Garbage

Exploring on my own, I felt silly when I found a file called installer.log:

HackMii v1.2 installer starting up
PVR = 00087200
running under IOS 38 rev 0xe19
52 titles are installed
Found IOS 16: revision: 0x200.
Found IOS 10: revision: 0x300.
Found IOS 80: revision: 0x1b20.
Found IOS 38: revision: 0xe19.
Found IOS 37: revision: 0x161f.
Found IOS 36: revision: 0xe18.
Found IOS 35: revision: 0xe18.
Found IOS 34: revision: 0xe18.
Found IOS 33: revision: 0xe18.
Found IOS 31: revision: 0xe18.
Found IOS 30: revision: 0xb00.
Found IOS 28: revision: 0x70f.
Found IOS 22: revision: 0x50e.
Found IOS 20: revision: 0x100.
Found IOS 17: revision: 0x408.
Found IOS 15: revision: 0x408.
Found IOS 14: revision: 0x408.
Found IOS 13: revision: 0x408.
Found IOS 12: revision: 0x20e.
Found IOS 11: revision: 0x100.
Found IOS 21: revision: 0x40f.
Found IOS 2: revision: 0x201.
Found IOS 9: revision: 0x40a.
Found IOS 4: revision: 0xff00.
launching IOS 38 for the installer…

IOS launched…

IOS versions: Installer: 38, HBC: 0
starting preparations

Acting under the assumption I might have a bad cIOS hiding in that list, I converted the revision hexadecimal numbers into decimal looked up each one up on wiibrew.org [2]. All I found was that IOS2 was a false positive and actually part of the system menu. After bringing this back to r/WiiHacks’ Discord, I was advised about an odd line:

IOS versions: Installer: 38, HBC: 0

HackMii usually works better exploiting another IOS, like IOS58, which was either absent or incorrectly loaded during the 4.3 update (I never was properly convinced either way). Discounting ModMii or technical piracy, my last chance at obtaining IOS58 was NUSD. While it is a Windows tool, I found NUSD runs perfectly in WINE on Linux. Platinum rating.

From there, I loaded a WAD file for IOS58 on my SD card alongside a WAD manager called YAWMM, and copied/renamed its boot file to <SD_card>/boot.elf as the payload in place of HackMii. Installation was straightforward from there, and HackMii was repaired.

A blow for blow description of the solution that worked for me can be found here: https://www.rwiihacks.com/tutorials/hackmiiscamstuckfix/index.html#method-3 [3]

“Press (1) to continue” appeared, and I used it to install both The Homebrew Channel and BootMii as an IOS.

BootMii and Priiloader

The Wii has three boot stages: boot0, boot1, and boot2. boot2 can be written to, but only early hardware revisions will brick if boot2 is homebrewed. HackMii detected a patched motherboard and didn’t let me install BootMii to boot2.

BootMii can backing up and restoring the Wii’s internal NAND memory. If you can install it to boot2, it gives you a low-level option to recover from a brick. I don’t get that though.

My next obstacle is SD card size. A stock Wii can only use a 2GB or 32GB SD card depending on if it is running firmware version 4.0 or later. It is recommended to have something a bit bigger than 256MB, as I have been using so far. I sacrificed my Manjaro ARM 32GB microSD for the cause, but I got a NAND backup through BootMii.

Priiloader loads after boot2 and before the System Menu and thereby is a powerful tool from recovering from a brick (though it is second to BootMii boot2 edition). It also offers a bunch of customization options to research another day, but following the wii.hacks.guide tutorial, I disabled disk/online updates and disabled an anti-flicker feature intended for tube TV’s.

D2x and cIOS

As a general rule, wisdom gleaned from the community says cIOS should be avoided, as they’ve learned how to do most things they want to do without changing firmware. However, the wii.hacks.guide checklist does install four cIOS files. Published details are vague, but I gather they do things like allow loading games off USB instead of the DVD drive and using unofficial online services. Wiibrew.org wasn’t particularly helpful when I looked each base IOS up, but then again this is my first time customizing firmware.

Diving deeper, D2x patches official IOS files during installation. This process went smoothly even if it was nerveracking. I double or triple checked each of the four ISO’s to be installed. But even if something did go wrong, that’s what doing a NAND backup early is for.

Loading Homebrew Apps

One more touch, and I can consider my Wii fully hacked for now: the Homebrew Browser. If The Homebrew Channel doesn’t find apps on the SD card (or optionally a USB drive), it shows nothing but bubbles your pointer can pop on contact. The Homebrew Browser can load and update apps to SD (or USB), but itself must be loaded manually. I installed a few recommended utilities, but further tinkering will have to wait for another topic.

Takeaway

Unfortunately, the channel I was working in/using for notes was deleted once I had gotten to The Homebrew Channel. I am mad because by then I had only written my disclaimer and half the recap by then. By God’s grace, I forgive the one[s] responsible, but my hope is that our shared lesson be the value of the footprints we leave behind when working in niche community support topics.

Final Question

Have you ever tried hacking/soft modding a Wii or any other game console? I look forward to hearing from you in the comments below or on my Socials!

Works Cited

[1] Nintendo Homebrew, “Wii Hacks Guide,” wii.hacks.guide, 2024. [Online].Available: https://wii.hacks.guide/ [Accessed Aug. 12, 2024].

[2] wiibrew.org,Nov. 18, 2021. Available: [Online]. https://www.wiibrew.org [Accessed Aug. 12, 2024].

[3] u/WiiExpertise, “HackMii Scamstuck Fix,”rwiihacks.com, 2023. [Online]. Available: https://www.rwiihacks.com/tutorials/hackmiiscamstuckfix/index.html#method-3 [Accessed Aug. 12, 2024].

A Let’s Player I am Not

Good Morning and Happy Easter/April Fool’s from my Robotics Lab! This is Shadow_8472 and today I am salvaging an attempted Let’s Play I tried making for Minetest Exile. Let’s get started!

Minetest is an open source block game engine and Exile among the top games on that engine. In this game created by Dokimi and continued by Mantar, you play as an exile banished from a post-postapocalyptic Iron Age civilization to the ruined land of the ancients for crimes you likely didn’t commit. When you lose a character to the wasteland, you will respawn as a fresh exile with a distinct backstory.

Suffice it to say Exile has a difficult learning curve. A .pdf tutorial exists by the original creator, Dokimi, but I found it very outdated two (I think) years ago. I tried making my own tutorial in the same style, but I found it too exhausting to switch between gameplay and organizing my thoughts, so I put the project down and all but forgot about it without publishing anything.

This week, I was inspired to try recording my gameplay with live commentary. I installed OBS from the repository and set it up for recording. It took me a while to get a good mix between my voice and game sounds, but I eventually got something halfway decent.

Gameplay wise, I got a decently lucky start with finding a good food to farm. Thanks to new clothing items since I last played, I wasn’t too bad off despite sub-optimal fiber sources previously being a practical requirement for keeping a critter alive while starting from scratch. I found a spot for a year one farm, but had to make a seepage pit for water to drink, which eventually gave me a stomach bug that crashed my game. I gave up on the Let’s Play and reported the bug. As of writing this on Friday afternoon, the bug has already been addressed. My save was still corrupted though, so I doubt I’ll be committing to a let’s play anytime soon.

Takeaway

Taking cumulative lessons from this project’s two attempts so far, I believe the wisest course of action is to record footage playing a season at a time while taking verbal notes, then grab screenshots from the video and write commentary on the highlights.

Final Question

Have you ever tried making a Let’s Play? How did it go?

Stashing Christmas

Good Morning from my Robotics Lab! This is Shadow_8472, and this week I did not complete my intended project for the week, but I did finish something interesting nonetheless. Let’s get started!

Red or Blue?

God has blessed my family to the point where when we pull out the Christmas decorations in November or so, we ask ourselves, “Do we want a red Christmas or a blue Christmas this year?” We then set up our artificial tree and garlands and adorn them tastefully from our “red” or “blue” bucket.

In fact: God has blessed us such that we could surprise my aunt some years back by getting a skinny artificial tree for our Christmas party. Circumstances dictated this tree as now our main tree this year, and we were able to bless a school run by our church with not just our large tree, but also some smaller ones for a few classrooms.

But Christmas is over. It’s time to put things away.

Let-There-Be-Christmas Boxes

In the likely event we are with the school next Christmas, my mother, Annie_8472, wanted to re-organize our buckets into our usual red/blue/both categories plus a number of classroom kits with our tiny trees and decorations for them. For each of red and blue things, we have a bucket for shatterproof balls, a case for smaller themed ornaments, etc.

Most of my contribution was hauling buckets between the living room and garage. I spotted a few buckets in comparatively poor condition, and arranged for them to end up at the bottom of the bucket stack. Annie clearly marked each bucket she used and had me aim them out when shelving them.

Takeaway

The same sorting system can be used with anything. Fabric –for example– can be sorted by color or material. Rank your items’ most important qualities, and store the most similar stuff together. This way, other people can find things (and put them away when done).

Final Question

Red or blue?

New Year’s 2024! Let’s Talk Public Domain

Good Morning and Happy New Year/Public Domain Day 2024! This is Shadow_8472 and today in the US public domain we welcome original Mickey Mouse along with many other works from 1928. Let’s get started!

The Need for Copyright

Art takes effort to create, but less to copy. We live in a world where the collected works of around 35-40 authors spanning around 1,500 years have been preserved by tens of thousands to millions of scribes, monks, reformers, translators, archaeologists, shepherds, curators, app developers, system admins, and more. The cost of a copy is negligible to the point of free; one could probably squeeze more than a couple million copies onto a 2 Tb external drive sold on Amazon for $10.50. (This figure assumes individually compressed 4.3 Mb files. I did not actually compress a full text Bible as a proof of concept.)

By the same principle, it is similarly trivial to copy and distribute any non-material good. Uncontrolled, it will disincentivize the creation of new works. This is why we have copyright protection so we can enjoy new works.

The Need for Public Domain

Art takes inspiration to create. Somewhere between whatever day you are reading this blog post going back to antiquity is a point where a work’s original creator is long gone and further copyright protection only serves to let the work either fade into irrelevancy or turn into a perpetual income source for the cost of maintaining an archive.

Meanwhile artists wishing to use copyrighted material must either sign a contract with the copyright holder or work in a legal gray zone. To a non-legal expert such as myself, all is fair in this gray zone except directly selling works containing copyrighted content unless the owner bothers stopping it with a cease and desist notice. And if/when it ends up in court, legal experts may explore the possibility it might have been fair use all along.

Some Intellectual Property (IP) holders are chill and consider fan works as unsponsored advertising, while others ruthlessly defend their copyrights to the fullest extent of the law. While the Sir Arthur Conan Doyle estate was bad with Sherlock Holmes’ stories, Disney has been the most ruthless of them all – going so far as to lobby themselves up a total of 40 years of extended protections atop the original 53 entitled to Mickey Mouse. All this was done while ladling stories from the very same public domain they were sabotaging.

Be it from financial troubles, forfeit legal privileges, pressure from social media, or something else, they did not seek another copyright extension, and the public domain finally contains long sought after characters such as Mickey, Minnie, as well as the second of two original storybooks about Whinny the Pooh – releasing Tigger along with it.

Speculation: If Copyright Was Never Extended

The first national copyright law in the US was the Copyright Act of 1790, which came the year after the constitution. It provided up to two 14 year terms of protection assuming the copyright holder was alive to renew within 6 months of an upcoming expiration. Assuming subsequent copyright expanded to cover new technologies beyond maps, charts, or books, aggregated expirations to January 1 in the same way, but never extended the total of this term, what would the next few years look like? Probably too wildly different to explore right now. But suppose they were to snap back instead…

The first thing that comes to my mind is the WINE project. WINE Is Not an Emulator; it’s a compatibility layer that translates Windows programs’ system calls into Linux equivalents on the fly – often for gaming. To skirt copyright, its developers are split into two teams: one team decompiles Windows files and takes notes. The other team uses these notes to re-implement open source files based on these notes without ever having seen the original code.

If copyright lasted 28 years tops, we would be getting Windows 95 into the public domain today. From prior research I might not have posted about, I know DosBox runs early Windows programs just fine until Windows 95 because up until then, it was all a glorified command prompt and backwards compatibility was in its nature. In this scenario, Windows 95 files would be fair game for WINE team 2 to directly use and improve so long as they remove all trademarks. Microsoft would have competition as upset users switch to one of a growing list of forks – both community driven and commercially maintained by 3rd parties. There would be security patches and I’d be surprised if nobody developed a 64 bit version.

In the entertainment industry, people would have a chance to independently retell the original stories they grew up with before old age. Original copyright holders would have to tell a better story if they want the nostalgia money. Meanwhile, fans would have a chance to hire original talent to extend canceled classics. Game devs who originally made works for hire could patch/modernize old code for another generation to enjoy. Comic book fans who have lost loved C-list characters to a disgruntled artist walking off with most of the copyrights could have hope of seeing them restored to the story.

In some ways, this feels a bit like Year of Jubilee stuff God told Israel to observe every 50 years.

Takeaway

Be advised that only the earliest Mickey animations are public domain; his colorization, friends, and details added later are still protected. Furthermore: Mickey Mouse in particular still has a lot of trademark hooks which could render him unusable anyway. My take is that Mickey Mouse has belonged in the public domain for a long time and that trademark ought not smother his use outside brand recognition. I expect legal fireworks in the coming years whose fallout will set precedent for generations to come.

Final Question

Imagine if I were to build a business empire strongly associated with the 500 year old Mona Lisa by Da Vinchi and I became so successful and diversified you’d need to live as a hermit on Mars to get away from me – and even then you would see Mona Lisa branded equipment when shopping for homesteading supplies. Should I be able to claim copyright infringement on someone selling posters of the original painting?

I look forward to debating answers –especially from an opposing viewpoint– in the comments below or on my Socials!

Never Buy Junky New Computers

Good Morning from my Robotics Lab! This is Shadow_8472 and today I am seriously thinking about a long-awaited computer upgrade. Let’s get started!

I’ve had a lot of fun learning Linux and not only doubling (or more) the useful life of my workstations. With out the full bulk of Windows, they’ve been able to keep up with my modest needs decently well, if I don’t say so myself. Through the occasional upgrade, I figure I’ve made the systems under my care last at least another generation worth of computers per what’s typical in my house – maybe two.

But over the past year, I’ve come across the stray project or game… As it stands, working with AI art on an NVIDIA GeForce GTX 970 is like trying to race go karts with pedal power. Some interesting applications may as well be a NASCAR event. A few applications I’ve been wise enough not approach yet. I approached my father to ask him if a graphics card was right for me while I plan on saving up for a nicer desktop or if I should just go for a full workstation now.

Shopping for a GPU

I came up with three tasks I want a new graphics card to do: AI art, VR, and gaming. My current card got me into AI art, but renders take minutes – too long to hold my interest long-term. I’ve used Virtual Reality headset one time; while it was fun, I’ll be after an open source driver (privacy concerns) probably on a tethered model, which my card likely isn’t up to rendering satisfactorily. Finally, I have a recent game I wish to blog onto Linux for an upcoming post without exploring the depths of its “potato mode.”

AI art relies on something called CUDA, which I know very little about except it’s tailored to NVIDIA cards, so I’m shopping NVIDIA. A big question is if I want to patch myself over until my next big machine for $300, or do I want to blow around $1600 for a card I will take to the next system. My father pulled up a benchmark by Tom’s Hardware showing that only the top of the market cards are gaming 4K at 60 fps. And while the bottom of the market may be an upgrade from where I am now, it didn’t look as massive a leap forward as I took it to be at first glance the night before.

But of course I’ll get the best experience with a balanced system. PCI slots may be the same shape, but my motherboard has generation 3 PCI and we’re on generation 6. I’d need a whole new machine to take proper advantage. So, why not look for one?

Shopping for a Full System

I’ve been interested in getting a System76 machine with Linux preinstalled for a while now. It wasn’t long before we were looking at the laptops, as that’s another gap to fill in my present tech loadout. For Autism reasons, I need a heavy laptop. I find the weight comforting. These ultra-portables weighing less than a Frisbee won’t do it for me. This leaves the top of the line “Desktop Replacements.” And would you know it, System76’s top tier laptop is listed as having the kind of graphics card I was looking at.

Takeaway

Growing up I had the following rule ground into me in regards to computers: don’t buy junk. If you buy the computer hardware you will need X years down the road, you’ll end up saving money once you count up the cost of a parade of budget computers bought along the way – as well as enjoying the turbo boosted performance along the way.

Final Question

What factors do you consider when shopping for computer hardware?

I look forward to hearing from you in the comments below or on my Socials!

Browser Tabs vs. Bookmarks

Good Morning from my Robotics Lab! This is Shadow_8472 with a side project of the week. Let’s get started!

When you’ve got RAM to spare, tabs and bookmarks seem almost interchangeable.

A few favorites kept open long-term turns into leaving forgotten research open with a few really good memes mixed in. Let’s just agree that a hundred or more tabs constitutes a problem I’ve been shirking for a while.

I’m working on just my primary daily driver, my upstairs workstation running EndeavourOS. My Internet tab organization on this machine uses three windows: one for ‘fun’, one for ‘blog’, and a ‘???’ one because I sometimes need two pages at once – such as an online game and a special calculator for it.

As with any other downsizing project, I used three categories: Close, Bookmark, and Recycle. Some tabs were obviously irrelevant, so I weeded them out. Most were saved as a bookmark organized by topic. Other tabs I wasn’t sure about or didn’t have a category, so I left them open for a while.

In total, I created categories for around 25 blog projects in phases ranging from concept to needing follow up or maintenance. These will need a second pass as many tabs only got a few seconds’ judgment call and in several cases, I made a “close enough” match.

Other finds of interest were memes I stashed away separately, duplicates I closed when I noticed them already bookmarked, and I even found and consolidated half a dozen web interfaces from my homelab alone.

Takeaway

Heavy duty tab management is something I should be doing more than once every few years – or even once an operating system in my case on this machine. I managed to get my three browser windows down to where two don’t have to scroll and the “fun” window only has two screen widths.

Final Question

How do you organize your online browsing habits?

Let’s Build… a Shelf?

Good Morning from my Robotics Lab! This is Shadow_8472 with a side project for the week. Let’s get started!

My bedroom closet is an interesting shape. One side is only deep enough for hangers, and the other fits my dresser with standing room left over. Over time, my dresser became the de-facto resting place of a couple boxes with soft articles stacked on top of that. A few weeks ago, I had a gravity crisis involving a towel and some winter bedding.

Taking a look at the rest of my closet, I noticed a bunch of unused space above my dresser. An additional shelf would fit the space nicely. The two existing shelves are of a simple enough construction: two brackets, a pinewood surface, a dowel for hangers, and some screws to hold everything together. A matching shelf for light-weight, long term storage shouldn’t be too difficult, and should work nicely if/when the house is sold.

Gathering Materials

A special thank you to my father for doing most of the actual work in building the shelf. I mostly did logistics tracking (strategic pestering) to have it done within the week. When I use the term “we,” it’s something he either did while I was either unavailable or ducking away from noise.

Our local hardware store is rigged for Pandemic Brand Pickup (not really a TM): order online, and your merchandise shows up in lockers outside. The brackets made it home this way, but the board had to be picked up manually. Online listed a board that would have been about the right size had our local branch carried it, so a longer one found its way home.

When we went to actually build the shelf on Sunday, we noticed the brackets’ brace pieces were round as opposed to the “flat” ones already in-place. We needed screws for going into the wall anyway, so it was back again to the hardware store.

Shelf Assembly

As much as I would have preferred a nice, symmetrical construction, the brackets must mount into studs. With my closet the seeming result of leftover space within our house’s structure, the stud finder’s lopsided report should not have been so great a surprise. The sides of the studs were marked with a pencil. A measuring tape pointed to how high to drill pilot holes so we didn’t start cracks in the wall while driving screws. Soon, the brackets were hung and secured.

The pinewood board wasn’t the prettiest to look at. Not only was there a knot running across the width on one side but the side we kept had a bunch of micro knots one might mistake for mold spots. The shelf is going in above my head, so I chose the better looking side to go face down – even though it had some lumber markings, a number printed onto it, and a bad cut line from before we discovered the store hadn’t cut the ends at a 90 degree angle. We sanded the markings off, and I continued sanding a little for slightly smoother surfaces. The board was secured with four tiny screws from our stockpile.

The hanger rod was sourced from our supplies – most probably it came out of a closet elsewhere in the house. We shortened it, but it had a large splinter we had to glue back into place and clamp it overnight. The morning of posting, I spent a while sanding it smooth and we installed it taking into account the nicest side to look at while hiding a previous screw hole and the repaired splinter.

Takeaway

The field of computing is complemented by additional skills. While this shelf might only ever support cloth, home improvement techniques can just as easily be used to cable manage a workstation, get your network goodies off the closet floor, or install a wall-mounted server.

Final Question

What supporting skills have you used for computing?

To Research: Android Rooting

Good Morning from my Robotics Lab! This is Shadow_8472 with a background research project for this week. Let’s get started!

Years ago, I promised myself I would pay closer attention to the terms of service gatekeeping important tech and software (such as operating systems) before using them regularly. To keep my complaint simple: Big Tech inhales data, and it is willing to exploit the least among us to get it. A consequence of my decision has been the inconvenience of having no cell phone since we switched carriers since our old ones weren’t accepted despite still being functional.

The Problem With Android

Android is a dark sheep. While running Linux at its heart, the spirit of free and open source software has been beaten out of it like an abused puppy locked away in Google’s basement. While technically fair game for hobbyists, the search giant’s monopoly on the definitive repository, the Play Store, makes it near-impossible to make a profitable Android product without cooperating with their “quality control” (See Amazon’s Kindle for a/the counterexample).

In addition, much of Android phones’ questionable behaviors (like user tracking) is governed by closed source packages included at Google’s insistence. Some packages are like the keyboard app and can be swapped out as easily as any other app. Others are software libraries built deeper into the system and called on by independently developed apps; these are harder to strip out and replace by their nature, but it is doable if the device is rooted.

Rooting

Root is Linux’s administrator account. A rooted phone is therefore an Android with root permissions restored. Root has the power to remove that news app you never asked for and didn’t want. Root can remove those annoying battery charge caps on an old phone or change the IMEI number on a new one’s modem. Root also has the power to brick your device and turn it into a paperweight if you don’t know what you’re doing.

Manufacturers are understandibly adverse to users with root. They can’t know what they’ve been doing or how security has been compromised by poor choices. They’ll invalidate warranties (as a general rule) on rooted devices, though you are often entitled to an explanation as to how a root job could have caused the damage; rooting will let you blare your music loud enough to damage the speakers, but an accidental damage policy should still cover a screen crack from dropping it in theory.

For my research this week, I located a total of four Android devices I have leave to root as I please. My mission critical device is an LG Stylo 5, but for practice, I have two Samsung Galaxy S7 edge units in addition to my everyday use tablet (Samsung Galaxy Tab A 10.1). As it turns out, big-name flagship products, like my practice articles, have more protections against being rooted than the device I actually care about. I also learned how important it is to know exactly what product you’re dealing with as even the carrier a phone was made for can be the difference between a successful firmware update and bricking.

Just as there are generally multiple software applications for a particular job, so too are there multiple utilities for actually rooting. From what I can tell, the conversation about Android modification is almost exclusively done from the Windows platform, though I do remember reading about a tool for Linux. There is much research remaining.

Takeaway

I have weighted the benefits of an Android phone against Google’s terms and decided that while cell phone access is important, it isn’t important enough to me to carry around their mechanical spy. The cleanest getaway outside a so-called “Linux phone” would be flashing a custom ROM, but I tremble each time I look into that. Replacing the worst offending software is closer to my skill level at this time. I’ve already done so with my main keyboard, and I’m working up the nerve to root and fortify my phone’s privacy.

Final Question

Do you own a rooted Android? What method and tools did you use? What did you do with it once you were done?