I always wanted to create a better copy protection crack for the Eye of the Beholder games, and thanks to the All Seeing Eye tools, I was able to decode the level scripts to figure it out.
The level script files are stored in a compressed format, so there are practical limitations on what bytes can be altered. Fortunately there are some critical values that can be easily modified.
The copy protection checks are scripted into the game on some staircase transitions. A "level flag" (in both cases, it's level flag 31 / 0x1F ) keeps track of when you have completed the copy protection, so that it doesn't ask again.
Eye of the Beholder:
There are two copy protection checks. The first is on the ladder down from level 1 - Upper Sewer Level (LEVEL1.INF, inside EOBDATA3.PAK). The second is on the stairs down from level 6 - Bottom Level of Dwarven Ruins (LEVEL6.INF, inside EOBDATA4.PAK), behind the three key puzzle.
To defeat the copy protection, we can update the level flag checks to always return a favourable result, so that it never asks the copy protection questions. In the sewer check, we update the value it compares the level flag to "2", which is impossible (a flag is always either 0 or 1). This will make the check always fail and it never shows the copy protection. In the dwarven ruins check, level flag 8 is always set two squares before reaching the stairs, so we can update the copy protection check on the stairs to use that flag instead.
--------
Modify EOBDATA3.PAK
Search for: EE EF 1F 00 FF
Change to: -- -- -- 02 --
Modify EOBDATA4.PAK
Search for: EE EF 1F
Change to: -- -- 08
--------
Eye of the Beholder II:
There are two copy protection checks. The first is on the stairs down from Catacombs level 1 (LEVEL1.INF) to Catacombs level 2 and the second is on the stairs up from Temple level 2 (LEVEL6.INF) to Crimson Tower level 1. the updates below will prevent the game from even asking the copy protection questions.
To defeat the copy protection, we can update the level flag checks to ones that should have already been set earlier, so that it never asks the copy protection questions. In the Catacombs check, we use global flag 30 (0x1E), which is set when you first step foot into the catacombs level 1. In the Temple check, we use level flag 22 (0x16), which is set when you first step into the area right after forging the Talon sword.
--------
Modify LEVEL1.INF
Search for: EE EF 1F
Change to: -- F0 1E
Modify LEVEL6.INF
Search for: DA 81 1F
Change to: -- -- 16
--------
Post edited October 15, 2021 by gammadragon