This reminds me of how the Game Boy displayed the Nintendo logo on boot up: The logo is a bitmap in the cartridge, the Game Boy displays it and only continues if the checksum matches the Nintendo logo. The point of this is that trademark should prevent the use of the Nintendo logo bitmap in unlicensed games, basically doing DRM through trademark. (It didn't really work, since companies would design their own logos such that they had the same checksum as the Nintendo logo)
Oracle also does this. Connecting to their database requires (required?) you to send a poem which is copyrighted by Oracle[1]. This would, in theory, let Oracle shut any unauthorized db driver down at will.
This was the most interesting thing I read today.
I remember the checksum thing from reading about it a while ago, but didn't know that vendors exploited collisions in order to display their own logo.
What I do remember though from childhood days is that the Nintendo logo could gradually become a pixelated mess when the cartridge was dirty/dusted and that it failed (or maybe refused, as I just learned) to boot when the logo was corrupted.
In that case, blowing the dust out of the cartridge usually solved the issue :)
The logo was checked in its entirety, not just the checksum, but the gameboy would read it twice: first to show it and then a second time to check for its integrity (and if it failed, the console halted). This meant you could display a custom logo and then return the unmodified logo to the console's firmware so it wouldn't halt.
I think the entire defense relied not on whether you could show the nintendo logo on boot but on whether you could embed it into your ROM. It's the same as Sega's TMSS https://segaretro.org/TradeMark_Security_System#Purpose
As someone that's getting into making modern games for the GB, after looking at pandocs etc I also wondered how Nintendo could even claim that their "logo" was in the ROM anyways, if it was xor'd or encoded somehow, the actual content of the ROM wouldn't be their logo at all, but meaningless until it was executed.
Great that when someone actually went against them that the precedent was set that Nintendo's complaints weren't valid.
no - in many legacy software languages, starting with ASM, there is a __DATA__ section and then in it, is DATA.. just bytes. You can find and dump "just the logo" in the ROM and elsewhere, with a binary search.
The answer might be the legality of using copyright to block functionalities, the link describes how Accolade challenged SEGA on those grounds a few years later and succeeded:
"The legality of this system was challenged in the United States by Accolade in the court case SEGA vs. Accolade, which ruled in Accolade's favor. The verdict set a precedent that copyrights do not extend to non-expressive content in software that is required by another system to be present in order for that system to run the software."
In case of Nintendo, it sounds like a unlicensed cartridge still had a choice to work on the Gameboy and NOT infringe the Nintendo trademark. But if it decided to show the Nintendo logo on bootup, it explicitly infringed on copyright...
It's a very constrained system. The startup rom is pretty small, and you want to keep thing simple so you don't mess it up. Cartridge mappers were certainly well known at the time, but they would have switched mappings based on program controlled writes/maybe reads; and the cartridge doesn't control the startup rom. Of course, it's not terribly hard to trigger based on the startup rom's access patterns; but sometimes the realistic goal is to increase the cost to do something, rather than to prevent it.
Additionally, I'd guess the goal would be to freeze after the wrong logo scrolled down, but you might not be able to read the logo back from display memory. It's also possible the boot logo scrolling was done early, and then they added the logo check later?