Saturday, July 27, 2024

Apple II Copy Protection: In-Game and Insidious

Back in the latter part of the 20th century (which for GenX me is admittedly an odd way of saying in the 1980s and 1990s) I played Sid Meier and Microprose's excellent WW2 submarine simulation game, Silent Service



The game was provided on a 5.25-inch floppy disk. Unlike the rigid 3.5-inch ones to come later for the Apple IIgs and early PCs, this was that same style of literally floppy disk like the 8-inch type that the U.S. once used to control its ICBM missile silos and that even today the German navy is working to finally phase out, just a bit smaller.



Copy protection in the Apple II days was interesting and in Silent Service and some other games of the period, multifaceted. 

First, the game would prompt you with a set of enemy vessels and have you pick the correct one based on the ones shown in the original instruction manual. Failing to do so would impede your ability to play.



As an aside, some games would take this a step further and print those certain manual pages such that Xerox copy machines of the day could not properly duplicate them, rather like those jackets nowadays celebrities use to deter papparazzi. For games that expected you to visually match intricate, extremely primitive precursors to QR codes, essentially, that was a roadblock.



On top of that, as this article describes, certain data the software would use to validate original media from the publisher would be encoded by special hardware. Unlike the disk drive used by the publisher, retail floppy disk drives could read, but not properly write, data from the original disk to a copy, and thus, any attempt by the computer to validate the appropriate checksum indicating the disk was authentic would fail.

Cleverly, on the part of Meier and Microprose, the fact that a disk had been pirated would not be publicized with the software locking the user out or rebooting or exiting the program, but it was a far more insidious, in-game punishment. You might be happily cruising beneath the surface, quietly stalking a large convoy of enemy cargo ships and tankers, when suddenly, the entire convoy would ALL transform into Kaibokan destroyer escorts

Mock up of a convoy turned entirely into Kaibokan destroyer escorts.
Crude mockup of a convoy turned entirely into Kaibokan destroyer escorts!


Not only that, whether submerged or not, the destroyer escorts would pinpoint your location and make a beeline for your sub and once in range begin hammering you with depth charges or gunfire as appropriate, relentlessly. 

For today's gamers playing the game on an emulator, this punishment would seem impossible to replicate, given in that case it wouldn't be running on the original Apple II hardware, just a digital, virtualized facsimile. 

Nevertheless, someone dedicated who maybe had GenX or Boomer family who were gamers of the era leave them an Apple II complete with this game gathering dust in the attic might be able to bring this insidious copy protection mechanism up for a breath of fresh air.



Saturday, April 20, 2024

Reolink for Windows Download Failed

Reolink makes some pretty decent security cameras including their recently released Duo 3 PoE 16MP with night vision, visible and infrared illumination, and in particular its panoramic view, which with its two lenses can offer a full horizontal view of the street in front of your home.


While the Reolink app for Android is pretty solid, their Windows app is much less so. When trying to get recorded video via the Windows version's Playback => Download, maybe a third or more of the time you'll be met with repeated download failures. 

Before optimization. Note repeated download failures.


Whether just a few videos are queued to download or a few dozen, Reolink will variously fail one or a few along the way, slow to a crawl in terms of transfer speed, or as seen above, fail altogether. Things can be even worse if you use a resource manager like Bitsum's excellent Process Lasso (sort of like Task Manager on steroids), which manages programs' CPU, memory and I/O usage on your system, and in some cases actively restrains ornery processes trying to monopolize same. 

Reolink for Windows strikes me as poorly written for PC, as if the developers either outsourced to some third-rate Windows team, or let their B-team or even interns loose on it. It's finicky, brittle, and inconsistent overall, whether trying simply to connect to cameras the Android app interacts flawlessly with, or as in this situation trying to download recordings.

Having Process Lasso enabled really brings Reolink's download issues to a head, but at the same time, if you configure things properly, it can help minimize those issues so that the app performs overall more smoothly and consistently. To do this, from Process Lasso, look for Reolink.exe in the list of all or active processes, right-click on it, then click Induce Performance Mode.



This ensures Reolink is both not restrained by Process Lasso itself, and seems to help the app have more resources dedicated to it, being more sensitive to changes in CPU and other resources especially for downloading as well as live viewing and even simple connectivity to your cameras.

After Induce Performance Mode. Overall smoother operation.


Certainly this does not get around Reolink being challenged in the Windows development department, but it does work arounds the app's clearly irritating deficiencies, at least most of the time.