Below is a mask ROM, photographed and its bits marked — every one recovered perfectly. That is the easy half. The chip's address decoder walked this array in some order nobody wrote down, and until you find it you have a picture, not a program.
48 × 48 cells · 2,304 bits · 288 bytes · all of them correct
In a mask ROM the bits are the geometry — a transistor present or absent, etched into silicon. There is no charge to leak away, so the data outlives the machine that read it and stays visible under a microscope. Decap the package, photograph the die, mark the bits: you get this grid, exactly and losslessly.
And then you are stuck. The order in which the address decoder walked the array was a layout decision, made once, documented nowhere, and different per chip family. Down-then-right on a Gameboy. Even bits from the left edge, odd bits from the right on a TMS32C15. Get it wrong and every byte is wrong while every bit is right.
So the artifact survived and the convention for reading it did not. You recover the convention by guessing: try a walk, and score the output for whether it looks like meaning — printable text, low entropy, runs of padding. That is what the solve button does, and it is what the real tools (MaskROMTool, rompar, Zorrom) do too.