Commander Keen in ... "Keen Meets the Meats"
Not if nobody does anything about it. I think the answer may lie in the source code. Once a fix can be made in the source, it could be easily translated to patching. Or, better, all of the mod's patches could be integrated into the source code, creating a single modified executable file for distribution.
Not sure if this should go in the Keen Dreams source code release thread or here (or both), guess it'll be here for now...
Well, I guess it's just a bit more involved. It basically goes like this:
- Have a Keen Dreams source tree ready (if you want a version other than 1.93 then you should pick the correct GIT branch/revision).
- Edit MAXBLOCKS in id_mm.h as suggested by Multimania in the source release topic mentioned above.
- I'm not sure it's necessary, but kd_main:InitGame has a memory check. Maybe you want to increase the required memory here (this is not checked in CGA builds, though).
- Start DOSBox with a ready Borland C++ 2.0 (or compatible) installation, having the Keen Dreams source tree mounted somewhere. Note that a "Turbo C++" installation may fail in this process, so it's really better to get Borland C++.
- Enter "static" directory and type "make.bat" (requires Borland C++). This should prepare a few resource object files (like EGAHEAD.KDR -> ..\KDREHEAD.OBJ) for linking.
- Finally go pack to the source tree's root, type "BC" (the PATH environment variable should be adjusted so it includes the Borland C++ BIN directory), load and build the project. You may need to adjust the INCLUDE and LIB dirs in the project settings. Once you get the EXE you can optionally pack it with LZEXE91 if you wish.
- If you want (or need) to, you can further build LOADSCN.EXE from the "lscn" subdirectory (I think it's unused in non-shareware releases).
Levellass wrote:Indeed and I thought it was a simple matter to tweak a variable and compile the code but apparently it's akin to getting fire from the gods.
Well, I guess it's just a bit more involved. It basically goes like this:
- Have a Keen Dreams source tree ready (if you want a version other than 1.93 then you should pick the correct GIT branch/revision).
- Edit MAXBLOCKS in id_mm.h as suggested by Multimania in the source release topic mentioned above.
- I'm not sure it's necessary, but kd_main:InitGame has a memory check. Maybe you want to increase the required memory here (this is not checked in CGA builds, though).
- Start DOSBox with a ready Borland C++ 2.0 (or compatible) installation, having the Keen Dreams source tree mounted somewhere. Note that a "Turbo C++" installation may fail in this process, so it's really better to get Borland C++.
- Enter "static" directory and type "make.bat" (requires Borland C++). This should prepare a few resource object files (like EGAHEAD.KDR -> ..\KDREHEAD.OBJ) for linking.
- Finally go pack to the source tree's root, type "BC" (the PATH environment variable should be adjusted so it includes the Borland C++ BIN directory), load and build the project. You may need to adjust the INCLUDE and LIB dirs in the project settings. Once you get the EXE you can optionally pack it with LZEXE91 if you wish.
- If you want (or need) to, you can further build LOADSCN.EXE from the "lscn" subdirectory (I think it's unused in non-shareware releases).
Website: https://ny.duke4.net/
- VikingBoyBilly
- Vorticon Elite
- Posts: 4158
- Joined: Sat Jan 05, 2008 2:06
- Location: The spaghetti island of the faces of dinosaur world for a vacation
So it's basically been left at the mercy of Szemi?DoomJedi wrote:I've seen it, just didn't know what to answer, not being that much involved in the project lately beside checking latest tilesets and art of DropBox updates.VikingBoyBilly wrote:You're still not looking at my PM.
"I don't trust players. Not one bit." - Levellass
Wait, has anybody tried going through the steps I've given above? Maybe it's even possible to patch something into an original EXE later once a new EXE with the above modification is built, although it should theoretically result in a larger (decompressed) EXE image.
Furthermore, the Borland IDE/linker should spit out a KDREAMS.MAP file with the exact locations of functions and variables in the EXE image (as seg:off addresses). If it doesn't, or there aren't a lot of these details, it may be configurable from the IDE itself.
Finally, it's just an idea, but maybe you can patch into Keen Dreams some ID_MM code from Keen 4-6 or Catacomb 3-D? If it's better (and doesn't require much more space) then it may be a possible path.
If, however, it's just the game code not having enough, say, uncaching calls, that's a different story.
Furthermore, the Borland IDE/linker should spit out a KDREAMS.MAP file with the exact locations of functions and variables in the EXE image (as seg:off addresses). If it doesn't, or there aren't a lot of these details, it may be configurable from the IDE itself.
Finally, it's just an idea, but maybe you can patch into Keen Dreams some ID_MM code from Keen 4-6 or Catacomb 3-D? If it's better (and doesn't require much more space) then it may be a possible path.
If, however, it's just the game code not having enough, say, uncaching calls, that's a different story.
Website: https://ny.duke4.net/
As far as I know nobody's tried your method. I don't even know where to begin.
We're not using the DICTS so these can be overwritten, resulting in an equal size EXE image. Not entirely sure what the problem is but it seems to relate to iffy and poorly optimized caching causing a shortfall when one shouldn't happen.
We're not using the DICTS so these can be overwritten, resulting in an equal size EXE image. Not entirely sure what the problem is but it seems to relate to iffy and poorly optimized caching causing a shortfall when one shouldn't happen.
What you really need, not what you think you ought to want.
Well, you should first clone the Keen Dreams source code(s) repository with git, then change to a specific branch or commit in order to get sources and static data for a specific version (the "git log --all" command should let you see a list of the commits from the multiple branches). Apparently GitHub also lets you download the contents of a specific branch/commit from a repository like this as a ZIP file.
Then you should get a ready Borland C++ setup for DOS. I tried Borland C++ 2.0, which is also what was originally used, but the README says 3.1 can also build these. As said before you'll need to call MAKE.BAT. I should've clarified that the Borland tools should already be in the PATH at this point.
What follows is a matter of fiddling with the files and the IDE.
Then you should get a ready Borland C++ setup for DOS. I tried Borland C++ 2.0, which is also what was originally used, but the README says 3.1 can also build these. As said before you'll need to call MAKE.BAT. I should've clarified that the Borland tools should already be in the PATH at this point.
What follows is a matter of fiddling with the files and the IDE.
Website: https://ny.duke4.net/
- VikingBoyBilly
- Vorticon Elite
- Posts: 4158
- Joined: Sat Jan 05, 2008 2:06
- Location: The spaghetti island of the faces of dinosaur world for a vacation