Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

SIC-1 Solutions

Forum for posting SIC-1 solutions · By jaredkrinke

Self-destruct Achievement

A topic by 0x20a6e created Apr 26, 2025 Views: 78
Viewing posts 1 to 1
(2 edits) (+1)

I don't know how other people did but i found this (nearly by accident) for the self-destruct achievement.

subleq @IN, 0, 0

That's it!

After compiling, our memory looks like :

fd 00 00 00 00 00 ...

with a bunch of zeros after.

It will attempt to subtract address 0 (@IN aka -3) from @IN which is forbidden so nothing will happen.
Subtracting anything from @IN doesn't seem to make the compiler interpret that as valid branching, so it goes on.

Now the compiler will interpret any 3 bytes as a subleq instruction, so the next subleq instruction looks like :

subleq 0, 0, 0


That effectively resets address 0 (our @IN) to 0, and jumps to 0. Now our only non-zero byte has been removed, and we get the achievement.

An alternative i found is this, which translates to the exact same compiled memory and therefore cycles and bytes read :

.data @IN

Go play the game, and thank @Jared for it being free!