Not only do GB and GBC games work on the GBA, but some of them even have special GBA-only content. I know that at least one of the Legend of Zelda Oracle games has an extra house in the village on GBA. When you play the game on a GB/GBC, there's just an empty lot in that place.
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."
So many great games. Some of my favourites (mostly action RPGs, exclusives marked *):
- Landstalker*
- The Story of Thor*
- Wonderboy in Monster World (* virtually an exclusive)
- Soleil*
- Flashback
- The Immortal
- Quackshot*
- Light Crusader*
- Arcus Odyssey
- Sonic the Hedgehog 2* (the other main games are good too, but this is my favourite)
- Desert Strike and Jungle Strike (I don't remember playing Urban Strike, but it got excellent reviews)
- The Lost Vikings
- Sword of Vermillion*
Not bad overall, although I don't know where they got that "Atari 2600 Pitfall" screenshot. Not only is that not taken from the actual game, the 2600 couldn't display that image. It looks like someone who mostly remembered the game drew it from memory in MS Paint.
Where are these conversations happening? I could see a lot of enterprise-focused groups potentially getting behind OnlyOffice, but individual home users? Not so much.
EDIT: My mistake! I didn't realize that there are standalone versions of OnlyOffice in addition to the web app version.
Every time I see yet another obscure game/platform article or video, I realise that I've once again forgotten how little most people delve into the history of their creative media. I'm teaching myself about Soviet clones and niche Japanese systems that came out before I was born, and some 20-something self-proclaimed video game historian is releasing a video titled "The most obscure game that NO-ONE remembers" and it's about Legacy of Kain or Space Quest or Sly Cooper or some other million-selling franchise that just hasn't had a new release in the last 5-10 years.
I'm waiting for these guys to get old enough to start seeing "world's most obscure game" videos about Minecraft and Fortnite.
AIX is pretty obscure as a gaming platform, though, I'll give you that.
As someone who has often been asked for help or advice by other programmers, I know with 100% certainty that I went to university and worked professionally with people who did this, for real.
"Hey, can you take a look at my code and help me find this bug?"
(Finding a chunk of code that has a sudden style-shift) "What is this section doing?"
"Oh that's doing XYZ."
"How does it work?"
"It calculates XYZ and (does whatever with the result)."
(Continuing to read and seeing that it actually doesn't appear to do that) "Yes, but how is it calculating XYZ?"
"I'm not 100% sure. I found it in the textbook/this 'teach yourself' book/on the PQR website."
I watched the video that you linked to, and it was very interesting! I'd never thought about exploiting the possibility of double-dipping the logo. It simply wouldn't have been practical back in the day. However, there are two important facts that change the situation a bit.
(EDIT: I've left the following discussion of logo checksums intact, but I kept digging and found what is claimed to be a dumped and disassembled copy of the OG GameBoy boot ROM, which does include a byte-for-byte check of the logo data. Colour me surprised! I was interested in GBA homebrew back in the day and I'd swear that I saw a dumped GB boot ROM that only calculated a checksum. Also, those cartridges with the non-standard logos? I own them. Unfortunately I can't get my hands on them right now, but I saw them with my own eyes. If it wasn't just fooling a checksum, then I don't know what the deal was there, especially the carts with "garbage" logos. Not to mention that as I said, I don't think it was practical to do a bait-and-switch in a retail cartridge back in the day.)
(EDIT 2: Yes, I'm still reading about this! It seems like the bait-and-switch was feasible back in the day. Some publishers used special mappers, while others apparently redirected address lines with carefully-chosen capacitors, which seems delightfully hackey to me.)
First, neither the OG nor the Color GameBoy have a complete copy of the Nintendo logo stored in their boot ROM. Instead, the boot code calculates a checksum of the cartridge's logo data, and compares that to a stored checksum of the official logo. If the checksums match, the check is passed. There are unofficial cartridges which boot just fine by having "garbage" logo data that passes the checksum test. I have even seen one company that took the time to come up with a different recognizable logo that still passed the check. The lettering looked weird, but you can read it.
By the time the GameBoy Advance came around, ROM was cheap enough to include a complete copy of the official logo and compare it byte-for-byte, so they did.
Second, Sega tried a similar tactic on some of their consoles: The boot rom contained a routine which would display a screen claiming that the software had been produced by or under license from Sega Enterprises. If the code on the cartridge/disc didn't call that routine fairly early, the boot ROM would cause the console to lock up. The idea was that if software had to call that routine, Sega could sue unapproved publishers for claiming to be licensed when they weren't.
Unfortunately for Sega, the US courts ruled (Sega vs. Accolade, 1992) that since it was impossible to run software on the system (which the court upheld that Sega had no right to block, ah the days before DMCA) without calling this routine, that unlicensed publishers couldn't be said to be wilfully claiming licensing rights from Sega; they were just calling a routine that was necessary to make the console work. The fact that Sega had attached this licensing screen to it was immaterial.
No doubt Nintendo's legal team would go after anyone who tried this on one of their systems, either under DMCA somehow, or even simply on the premise of being able to bankrupt their opponent with requests and delays before ever making it to trial. But I suspect (I am not a lawyer) that technically, anyone putting a Nintendo logo in a GB cartridge could claim the 1992 case as a precedent.
Object pooling is an absolute necessity for performance in modern environments that remove all manual memory management in favour of automatic garbage collection. And it's still good practice to reuse memory when you do have some manual control.
Not many things will slow your program down (or make a garbage collector blow up) as effectively as alternately freeing and requesting tiny chunks of memory from the OS thousands of times a second.
I tend to agree. I think this attitude is something of a holdover from the early days of computer science, when of academics from all the other, existing fields, mathematicians were usually the best fit. Now that we have formal computer scientists, computer engineers, and software engineers, this is no longer the case.
In my experience, when someone from a purely mathematical background tries to program or explain something for programmers, they often (but not always, to be fair) insist vehemently on sticking to methods and algorithms that at best confuse the issue in a programming setting, and sometimes even run counter to how the computing hardware works, reducing performance. In these situations the rationale given is usually something along the lines of, "Listen, we mathematicians have been doing it this way for X hundred years, so that's the way it should be done!"
I think that it's because a) the abstraction does solve a problem, and b) the idealized solutions aren't actually all that simple.
But I still agree with the article because I also think that a) the problem solved by the added abstraction isn't practical, but emotional, and b) the idealized solutions aren't all that complex, either.
It seems to me that many devs reach immediately for a tool or library, rather than looking into how to create their own solution, due more to fear of the unknown than a real drive for efficiency. And while learning the actual nuts and bolts of the task is rarely going to be the faster or easier option, it's frequently (IMO) not going to be much slower or more difficult than learning how to integrate someone else's solution. But at the end of it you'll have learned a lot more than you would've by using a tool or library.
Another problem in the commercial world is accountability to management.
Many decades ago there used to be a saying in tech: "No-one ever got fired for buying IBM.'" What that meant was that even if IBM's solution was completely beaten by something offered by one of their competitors, you personally may still be better off overall going with IBM. The reason being, if you went with the competitor, and everything worked out, the less tech-savvy managers were just as likely to pat you on the back as to assert that the IBM solution would've been even better. If the competitor's solution didn't meet expectations, you'd be hauled over the coals for going with some cowboy outfit instead of good old reliable IBM. Conversely, if you went with IBM and everything worked, everyone would be happy. But if you chose IBM and the project failed, it'd be, "Well, it's not your fault. Who could've predicted that IBM wouldn't come through?"
In the modern era, replace "IBM" with the current tool-of-the-month, and your manager will be demanding to know why you're wasting time reinventing the wheel on the company's dime.
Redkey
0 post score0 comment score
I've had a copy for a long time, and I dust it off to try playing it every year or so. My Japanese reading skill is improving very slowly, so each time I make a little more progress before giving up.
It feels super interesting in a surreal, David Lynch/Haruki Murakami/Garage way.