A Satellaview research blog.

Explaining BS-X “lockout” – why your Zelda pack won’t play anymore. (sorry dude.)


Ah, this dreaded screen.
Why so dreaded?
This screen says you got no data in your Memory Pack, that’s why.
Wait, what’s that? “I just HAD a game in this 5 minutes ago!”?
Unfortunately, a common realization people don’t tend to have have when purchasing Satellaview 8M Memory Packs that have game data in them is that many of the games are designed to expire. Callis lost the chance to play a Zelda no Densetsu: Kamigami no Triforce pack to this. Poor guy. 🙁

This post was more or less inspired by me talking about this a bit before in a DigitPress thread. Let me repeat a bit of what I said there, and then add some more to it from some additional research.

I’ll start off by repeating this; many Satellaview downloads are designed to expire.
Nintendo and St.GIGA had to think of -something- to prevent people from keeping free games forever; this system is probably one of the earliest examples of DRM in console gaming, and also among the most brutal.
The games expire through a method where, in the end, the data is “locked” in the memory pack, sitting there fully intact, yet being unable to be read.

What games are set to expire? A fairly high amount of them! If it was released at retail, expect any Satellaview download counterpart that doesn’t have any alterations to be expire-able. If it’s Kaizo Choujin Shubibinman Zero, same. If it’s a Soundlink title? Wait, those weren’t designed to boot up to begin with, so these games were already “locked” befroe you even got your hands on them.

What games don’t expire? For some reason, many Nintendo 1st Party downloads, like the BS Kirby no Omachahako line, Special Tee Shot, and special editions of their titles. Also, Squaresoft’s games.

“How” does a game expire? The BS-X checks the header for a value (xFD5) that states how many boot-ups the game has left; This amount seems to be between 1 (0x84) and 5 (0xFC) for every download that can expire (data that doesn’t expire have 0x00 in the header value). If it boots up a game, it’ll subtract from that value. When there’s nothing left (0x80)? The game is “locked”. The BS-X will refuse to read the game, acting as though it’s not even in the Memory Pack. Other data can theoretically be written over it. However, if you believe your data is valuable – which is likely the case – then you’ll probably want to know if you can do something about this.
A ROM Dump of an 8M Pack with “locked” data will allow you to see the contents – Emulators like SNESGT and SNES9Xpp XE will even bypass the lock and boot it up (BSNES, however, won’t – such is the downside of highly accurate emulation, needing to emulate the un-desirable parts.)
If you want a way to un-do the lock in the Memory Pack itself, though… well, good luck to you there. I got nothing to help you with.