• 0 Posts
  • 34 Comments
Joined 3 years ago
cake
Cake day: July 5th, 2023

help-circle

  • The problem I find with many games made for Win95/98/XP is that the game uses one or more third-party libraries that were only “valid” for a year or two. After that, updates to the OS closed loopholes that the poorly-written old versions of the libraries relied on, but the poorly-written newer versions of the libraries released to deal with those issues then break compatibility with the previously-released game, which was never updated or patched.




  • Seriously, the best option is whatever matches the brightness of your screen to its surroundings. I read about this decades ago and it eliminated screen fatigue for me.

    If switching to dark mode works for you, great. When I worked on a PC in a well-lit office all day, I would open a program with a white background, hold up a blank white piece of paper next to the screen, and adjust the screen brightness until it looked about the same as the paper. I did this once or twice a week because I was near a set of picture windows and I was affected by weather and the seasons, but in a room with more artificial light it would be “set and forget”.

    It seemed very dim at first, and several of my coworkers commented on it. It took a few days of resisting the urge to turn the brightness back up, but I got used to it and never went back.

    My PC at home is currently set up in a partially shaded corner of a well-lit room, so I put a dim little light bar behind the screen to make the wall match the brightness of the screen and the rest of my desk/room.


  • A couple of other commenters have given excellent answers already.

    But on the topic in general I think that the more you learn about the history of computing hardware and programming, the more you realise that each successive layer added between the relays/tubes/transistors and the programmer was mostly just to reduce boilerplate coding overhead. The microcode in integrated CPUs took care of routing your inputs and outputs to where they need to be, and triggering the various arithmetic operations as desired. Assemblers calculated addresses and relative jumps for you so you could use human-readable labels and worry less that a random edit to your code would break something because it was moved.

    More complex low-level languages took care of the little dances that needed to be performed in order to do more involved operations with the limited number of CPU registers available, such as advanced conditional branching and maintaining the illusion of variables. Higher-level languages freed the programmer from having to keep such careful tabs on their own memory usage, and helped to improve maintainability by managing abstract data and code structures.

    But ignoring the massive improvements in storage capacity and execution speed, today’s programming environments don’t really do anything that couldn’t have been implemented with those ancient systems, given enough effort and patience. It’s all still just moving numbers around and basic arithmetic and logic. But a whole lot of it, really, really fast.

    The power of modern programming environments lies in how they allow us to properly implement and maintain a staggering amount of complex minutiae with relative ease. Such ease, in fact, that sometimes we even forget that the minutiae are there at all.




  • When you use any piece of Internet-enabled software, any and all data that passes through it can theoretically be copied and siphoned off back to the authors of the software.

    Should they do it? No. Can they do it? Yes.

    Does Mozilla do it? They say they don’t, and I’m inclined to trust them. Do other major browsers do it? Absolutely.

    As regards your physical location, geoIP databases can get pretty close these days.


  • How many techie types have had someone come to them and say something like “Hey, you know tech thing XYZ? You know how it sucks? Well I’ve got a great idea: make a BETTER one! So what do you say? You whip it up in an afternoon, I’ll handle marketing, and we’ll be rich!”

    Like they really thought that the issue is just that no-one can see the flaws. They thought that the fix is super easy and they’re just the first person clever enough to see it.




  • the boss can detect headphones going on your head and music starting from 50 feet away and instantly be behind you with a burning question that doesn’t make any sense.

    I’m sure you realize that the question doesn’t make any sense because they had to think of it on the spot, just to prove that you can’t wear headphones in the office due to all the important ambient office talk you need to be a part of.

    One of my best, most competent bosses once said to the team “I don’t understand how you guys can work while listening to music, but as long as your output stays high, I’m not going to interfere.”


  • How about that worst of both worlds, the tutorial where the author starts out writing as if their audience only barely knows what a computer is, gets fed up partway through, and vomits out the rest in a more obtuse and less complete form than they would’ve otherwise?

    1. Turn on your computer. Make sure you turn on the “PC” (the big box part) as well as the “monitor” (TV-like part).

    2. Once your computer is ready and you can see the desktop, open your web browser. This might be called “Chrome”, “Safari”, “Edge”, or something else. It’s the same program you open to use “the Google”.

    3. In the little bar near the top of the window where you can write things, type “https://www.someboguswebsite.corn/download/getbogus.html” and press the Enter key.

    4. Download the software and unarchive it to a new directory in your borklaving software with the appropriate naming convention.

    5. Edit the init file to match your frooping setup.

    6. If you’re using Fnerp then you might need to switch off autoglomping. Other suites need other settings.

    7. Use the thing. You know, the thing that makes the stuff work right. Whatever.

    Congratulations! You’re ready to go!




  • The PlayStation 1 had a copy protection system that measured physical properties of the disc which couldn’t be replicated by normal CD writers. There were a few ways to get around this, but to be able to put a burned CD into your console and boot directly from it into the game (as usual) required the installation of a fairly complex mod chip. A lot of people alternatively used the “swap trick”, which is how I used to play my imported original games.

    The DreamCast’s copy protection was heavily reliant on using dual-layer GD-ROM discs rather than regular CDs, even though they look the same to the naked eye. There were other checks in place as well, but simply using GD-ROMs was pretty effective in and of itself.

    Unfortunately, Sega also added support for a thing called “MIL-CD” to the DreamCast. MIL-CD was intended to allow regular music CDs to include interactive multimedia components when played on the console. However, MIL-CD was supported for otherwise completely standard CDs, including burned CDs, and had no copy protection, because Sega wanted to make it as easy as possible for other companies to make MIL-CDs, so the format could spread and hopefully become popular. Someone found a way to “break out” of the MIL-CD system and take over the console to run arbitrary code like a regular, officially released game, and that was the end of DreamCast’s copy protection. People couldn’t just copy an original game disc 1:1 and have it work; some work had to be done on the game to put it on a burned CD and still have it run (sometimes quite a lot of work, actually), but no console modification was needed. Anyone with a DreamCast relased before Sega patched this issue (which seems to be most of them) can simply burn a CD and play it on their console, provided they can get a cracked copy of the game.



  • Child’s play compared to what you’d need to do on a modern chip.

    I don’t think it’s the chips, but the operating environments. Modern CPUs offer dozens of multipurpose registers and many more instructions and addressing modes compared to those old, low-cost CPUs, which should make things easier, not harder. But no-one’s building old-style dedicated systems around modern CPUs; our code now has to play nice with firmware, OS, libraries, and other processes, including resource management and preempting.

    Compare a single-gear go-kart to an automatic sedan. Getting top performance out of the go-kart on a closed track is difficult and requires nuance. If we could drive the automatic sedan around the same closed track, we could easily demolish the go-kart, and not just with raw engine power. The improved acceleration, braking assist, and power steering are enough. But when we drive the sedan we’re usually doing it on public roads with traffic signals, intersections, speed limits, and other road users. That’s what’s more difficult.