|
Post by lgb3d on Nov 9, 2024 19:51:22 GMT -5
Chris that is Super Rad idea. I have a little experience with batch script and was doing something remotely similar but not being able to catch the universal register ect.. but with the Windows 95 program riding the batch script type menu that is how I visualized it working but I never got that deep. I wanted to be able to create save states with the Windows 95 game.
With my current MS-DOS program, I do have terminals that the player can utilize like Duke to watch surveillance cameras that are mounted elsewhere in the game. And one location where the player operates a machine gun turret electronically by pressing buttons.. but what you're saying about opening a separate window with a terminal which modifies the universal register that is super cool idea super functional
|
|
chris
Junior Member
Posts: 65
|
Post by chris on Nov 10, 2024 7:35:24 GMT -5
Yeah there's several GCS games that do their own menus with batch files. One of the interesting things about DOS is you can effectively daisy-chain EXE child processes together to run one after another without batch files. GCS Menu essentially does this, it's a shell that runs the menu, save/load, and cutscenes, and launches PNOCOMP with the argument to start a new game or continue the previous game from the .BIN files (STATE.BIN holds global info like universe registers, presumably the items in your inventory, health, stats, etc. and UNIVxx.BIN stores the state of each level). You mentioned rolling your own save/load system, you could absolutely do that! All GCS Menu is doing is storing DESCRIPT.DAT (the name of your saved game), STATE.BIN, and the UNIVxx.BIN files in a folder. When you load a game, it copies those files to the DATA directory and tells PNOCOMP to continue the game.
When GCS exits (you get killed or throw register 127), a file called PEND is created. This file holds the value of register 127 (in hex), which GCS Menu picks up and determines whether to show a cutscene or not.
So yeah my solution hooks into PNOCOMP, looks for the existence PEND, and determines based on the number you put in 127 whether it should further interrupt the game by launching an EXE of your choice. Once that EXE is terminated, the fake PNOCOMP is resumed, which launches the real PNOCOMP, and you resume your game.
|
|