fullsec.exe README
by ccexplore
last modified: 2021/05/09
version: 1.1.1
Acknowledgement
Thanks to:
- David Stolp for discovering a major deficiency in fullsec 1.0
- Anders Kaseorg for removing fullsec 1.0 from distribution upon release of 1.1
Contents
The zip file should contain the following files:
- fullsec.exe -- the patch program
- fullsec.c
fullsec.h -- source code (warning: not very well-commented)
[you can find in fullsec.h the details on what bytes are
changed by the patch program]
- fullsec.txt -- a text version of this page
How To Use
should be self-explanatory. just run the program and follow the instructions.
Note: because this is a DOS program, long filenames are not supported. keep your filenames to no more than 8 characters + an optional 3-character extension. The patch program will automatically append a .exe extension for you if you don't type in any extension in the filename. Pathnames are supported.
the program will also allow you to unpatch a program that was previously patched with fullsec.exe
NEW for version 1.1: it will recognize a file that was patched with the old version of fullsec, and offer to update it to the new version (recommended).
Description of Patch
fullsec.exe is a DOS program that can patch your CHIPS.EXE to do the following:
- after patching, every playing will start with full first second [except under one or two very rare and technical condition; see the "change log" section]
- Anytime while the patched CHIPS.EXE is running, you can switch between starting levels on even-step mode and starting on odd-step mode by pressing F5 and then restart the level (or go to a different level). (The patched CHIPS.EXE will first start off with even-mode.) Each time you press F5 it will toggle to the other mode, but note that the action of F5 doesn't take effect immediately. (see #4).
- While the patched CHIPS.EXE is running, you can check whether it will be starting levels off with even-step mode or odd-step mode as follows: go to menu item "Best Times..." under the "Game" menu. Look for a line that reads like:
"You have completed..."
If you are in odd-step mode, that "u" will be in uppercase instead, like this:
"YoU have completed..."
Otherwise you are in even-step mode.
- The patched CHIPS.EXE will only reset the tickcount when loading a level from file (which happens whenever you restart a level or go to a different level by any means). Therefore the feature cannot be used for cheating. In particular, the tickcount is not affected in any way when you press F5 in the middle of a game, until that game is over.
Interaction with other patches
fullsec.exe 1.1 does not interact with any other known patches, including mychip, chipend, and ccpatch.
fullsec.exe 1.1 will correctly recognize files that were patched with the old version of fullsec and offer to update them.
Side effects of patch
fullsec.exe's patches are guaranteed not to have any impact on the game logic.
as for other aspects of CHIPS.EXE, there are two alterations:
- The patched CHIPS.EXE will no longer check for the first 4 "signature bytes" in the levelset .DAT file. This does not affect gameplay as the signature bytes are not used for anything.
- In the original CHIPS.EXE, Ctrl-F5 is one of those keys that activates the "Ignore password" cheat. In the patched CHIPS.EXE, Ctrl-F5 (or any form of F5 for that matter) no longer activates that cheat, as it is recoded to switch between even- and odd-step modes. The other 5 keys for activating that cheat will continue to function as before.
Known bugs of patching program
none. All known bugs in fullsec.exe version 1.0 has been fixed.
Change Log
Version 1.1.1:
- fixed a crash on linux
- fixed a compiler warning
Version 1.1:
- fixed a bug (discovered by David Stolp) in version 1.0, which causes levels to lose a second even before playing starts, when the previous play was terminated exactly on whole game seconds
- adds the ability to recognize instances of the "pre-move" bug [an obscure bug already present in the original CHIPS.EXE, which can in certain rare instances make a difference in a level's solvability], and respond by temporarily leaving the tickcount not resetted. This is necessary because the pre-move bug is, timing-wise, equivalent to starting the game 2 ticks earlier but not doing anything on the first 2 ticks. Therefore resetting the tickcount at the pre-move bug would be equivalent an indirect use of the "long-first-second" bug of CHIPS.EXE
- fixed the bug related to the program's use of temporary files (mentioned in the "known bugs" section of the old version of fullsec)
- added an "acknowledgement" section and a "change log" section in readme.txt
Version 1.0:
- first working version of fullsec released