3 ms·
This shows that having a legal way to run outdated operating systems is always important to guarantee that old software runs exactly as intended. Online activat
by thw_9a83c 1y ago
This shows that having a legal way to run outdated operating systems is always important to guarantee that old software runs exactly as intended. Online activation schemes make this problematic.
The solution seems to be installing and fully activating the operating system in the VM while it's still possible, then archiving the VM image. However, I don't know how reliable this method is, since the Windows OS may require reactivation if the hardware configuration changes significantly. Therefore, if the future VM host machine exposes slightly different hardware to the guest machine, the activation might be gone.
- benoau 1y agoHopefully the "Stop Killing Games" movement will create some formal obligations around those activation schemes too since it's pretty much the same problem from a different angle.
- layer8 1y agoThis particular example actually doesn’t show that. The misbehavior is caused by a bug in the original game, which was initially hidden only by pure chance, and was already fixed 20 years ago in updated releases of the game, and can be fixed in any version by adding the missing parameters in a plain-text asset (or running the existing patcher add-on). I agree in the general case, but this particular case isn’t a good argument for it.
- thw_9a83c 1y agoI would argue that this case also demonstrates the aforementioned problem. Apparently, an older version of the Windows OS was tolerant to this specific bug, and the game worked just fine. Future users might not be even aware that an updated release of the game fixed this bug, or they might not have access to the update. You can't blame the user for the fact that the old software contains something that is, technically, an invalid use of the API, meaning the software shouldn't have worked, even in the past. The only way to reliably make the old software work as intended is to have an OS version from that time available.
- layer8 1y agoJust to be precise, the bug isn’t about invalid use of an API. The software uses uninitialized values on the stack, which under older Windows versions happen to be preserved from earlier calls to the same application-level function, despite intermediate calls to other functions, which happen to also involve Windows API calls. In newer Windows versions, these latter functions happen to use more stack space, leading to the old values not being preserved on the stack anymore. I won’t argue about your other point, as there are arguments either way. I just don’t think this particular example makes a good case, and I suspect that it wouldn’t have been made if the full workings of the bug had been properly understood.