Keen Dreams Gold Edition

Here is where to post about the latest Commander Keen fangame or modification you've finished, a new website you've made, or another Keen-related creation.
User avatar
K1n9_Duk3
Vorticon Elite
Posts: 850
Joined: Mon Aug 25, 2008 9:30
Location: Germany
Contact:

Re: Keen Dreams Gold Edition

Post by K1n9_Duk3 »

The KDGOLD.EXE was compressed with a version of LZEXE that isn't supported by the built-in UNLZEXE code in the current versions of GalaxyView and uGrab. That's why GalaxyView can't find the included files.

You should be able to unpack the executable with UNP (should come with GalaxyView). After that, the analysis should be able to find the dict and head files inside the EXE, but there are other quirks that may cause problems. The number of tiles in the EGA file doesn't match the number of tiles in the tile attribute data. It's a bit of a mess. You're better off not using the tile attributes at all.

I will check my files when I get back home and see what would be necessary to open the levels.
Hail to the K1n9, baby!
http://k1n9duk3.shikadi.net
User avatar
K1n9_Duk3
Vorticon Elite
Posts: 850
Joined: Mon Aug 25, 2008 9:30
Location: Germany
Contact:

Re: Keen Dreams Gold Edition

Post by K1n9_Duk3 »

Alright, this is what you will need to do to view the Keen Dreams Gold levels:

- extract UNP.EXE into your KDGOLD folder
- drag-and-drop UNP.EXE onto a shortcut to DOSBox.exe
- run "UNP KDGOLD.EXE" in DOSBox and wait until it's done decompressing the file
- exit DOSBox

- edit GalaxyView.ini and search for the section "[E.KDR]"
- add the line "208624 = KDGOLD" at the end of that section
- add the following section somewhere in that file:

Code: Select all

[KDGOLD]

name = Keen Dreams GOLD

sprite_section = DEFAULT_SPRITES.KDR

tile_8_count   =     72
tile_8_start   =    418
tile_8M_count  =     36
tile_8M_start  =    419
tile_16_count  =   1391
tile_16_start  =    420
tile_16M_count =   1206
tile_16M_start =   1810
tile_32_count  =      0
tile_32_start  =   3016
tile_32M_count =      0
tile_32M_start =   3016

no_tileinfo    =      1

xgadict_pos    = 172330
xgadict_siz    =   1022

mapdict_pos    = 174374
mapdict_siz    =   1022

4_byte_xgahead =      1

xgahead_pos    = 109680
xgahead_siz    =  12066

maphead_pos    = 121760
maphead_siz    =    502
It doesn't really matter where you add it, as long as you don't add it in the middle of a section. You can add it at the beginning of the file or at the end or anywhere between two sections.

- save the changes to GalaxyView.ini
- rename KDGOLD.MAP to KDREAMS.MAP
- rename KDGOLD.EGA to KDREAMS.EGA
- open KDREAMS.MAP in GalaxyView
Hail to the K1n9, baby!
http://k1n9duk3.shikadi.net
User avatar
Quillax
Vorticon Elite
Posts: 665
Joined: Sat Mar 14, 2015 14:41
Location: Quillax Ship
Contact:

Re: Keen Dreams Gold Edition

Post by Quillax »

Ooh, thanks for the help, K1n9_Duk3! I'll have to try this out at some point! :)
Quillax Ship - Where you can download all of my cool, keen mods and super-marvelous fangames!
User avatar
Quillax
Vorticon Elite
Posts: 665
Joined: Sat Mar 14, 2015 14:41
Location: Quillax Ship
Contact:

Re: Keen Dreams Gold Edition

Post by Quillax »

Level maps are all exported and uploaded to KeenWiki!

I followed K1n9_Duk3's instructions, and GalaxyView worked perfectly! Once again, I appreciate your help, K1n9_Duk3! I assume the tileinfo would be tough to figure out, since you put "no_tileinfo = 1" in the data, though I'm satisfied with the maps as is. I even got the sprites for the new creatures to display! I wasn't able to get uGrab to play nice with Keen Dreams Gold Edition, so to work around that I turned to the sprite test cheat in the game. As I edited the ini file to get the new sprites to appear, I'll share the following sprite section in case anyone wants it:

Code: Select all

[DEFAULT_SPRITES.KDR]

max_object = 62

object1.sprite  =   1
object1.yoff = -16
object1.priority=1
object2.sprite  =   9
object2.yoff = -16
object2.priority=1

object19.sprite = 144
object19.priority=1
object21.sprite = 101
object21.priority=2
object22.sprite = 103
object22.priority=2
object23.sprite = 105
object23.priority=2
object24.sprite = 107
object24.priority=2
object25.sprite = 109
object25.priority=2
object26.sprite = 111
object26.priority=2
object27.sprite = 113
object27.priority=2
object28.sprite = 115
object28.priority=2
object29.sprite =  91
object29.priority=2
object30.sprite = 119
object30.yoff = -8
object30.priority=2
object31.sprite = 121
object31.priority=2
object32.sprite = 126
object32.priority=2
object33.sprite = 140
object33.yoff = -16
object33.priority=1

object35.sprite = 329
object35.yoff = -16
object36.sprite = 321
object36.yoff = -24
object37.sprite = 315
object37.yoff = -16
object38.sprite = 302
object38.yoff = -16
object39.sprite = 305
object39.yoff = -24
object40.sprite = 309
object40.yoff = -16

object41.sprite = 170
object41.yoff = -16
object42.sprite = 186
object42.yoff = -8
object43.sprite = 190
object43.yoff = -16
object44.sprite = 54
object44.yoff = -16
object45.sprite = 200
object46.sprite = 208
object47.sprite = 216
object47.yoff = -16
object48.sprite = 222
object48.yoff = -3
object49.sprite = 230
object49.yoff = -16
object50.sprite = 240
object50.priority=1
object51.sprite = 238
object51.priority=1
object52.sprite = 242
object52.priority=1

object53.sprite = 26
object53.yoff = -32
object54.sprite = 55
object54.yoff = -44
object55.sprite = 90
object56.sprite = 298
object56.yoff = -8

object57.sprite = 254
object57.yoff = -16
object58.sprite = 261
object58.yoff = -16
object59.sprite = 275
object59.yoff = -16
object60.sprite = 284
object61.sprite = 288
object61.yoff = -88

object62.sprite = 325
object62.yoff = -16
Note that I've not entered priority values for any of the new sprites, as without tileinfo they aren't necessary.
Quillax Ship - Where you can download all of my cool, keen mods and super-marvelous fangames!
Lower IQ than 314
Vortininja
Posts: 92
Joined: Wed Mar 04, 2020 3:13

Re: Keen Dreams Gold Edition

Post by Lower IQ than 314 »

Bug report: On the Rhubarb Rapids level, if a Rhubarb stuns you will you're climbing a pole, you tend to fall all the way to the bottom of the level as if noclip was being suddenly activated. This glitch can be consistently triggered. Otherwise, I'm looking forward to the updated release.
User avatar
Mobiethian
Vortininja
Posts: 286
Joined: Sat Jul 25, 2009 17:36
Location: South Fribbulus Xax

Re: Keen Dreams Gold Edition

Post by Mobiethian »

I am enjoying the new, golden experience with this mod. It's quite amazing what can be done here! And Happy New Year, Keeners! :D

Keep up this amazing work, szemi, it's worth it! The download is definitely worth the time to get this mod and play it! Go for it, folks! ;)
User avatar
szemi
Vorticon Elite
Posts: 1769
Joined: Sun Jan 11, 2009 15:19
Location: Hungary
Contact:

Re: Keen Dreams Gold Edition

Post by szemi »

I've finished the update! https://youtu.be/yC0vreWvXUw

Check for description in my first post.
Yeah, piece of cake!
User avatar
Syllypryde
Vorticon Elite
Posts: 1100
Joined: Tue Jan 20, 2009 18:33
Location: Michigan
Contact:

Re: Keen Dreams Gold Edition

Post by Syllypryde »

szemi wrote: Wed Jan 08, 2025 22:33 I've finished the update! https://youtu.be/yC0vreWvXUw

Check for description in my first post.
When I completed Horseradish Hill, saved on the world map and then tried to continue the game locked up. I had to close it. When I reloaded the game and tried to load from that same save, the game closed. It did this 3 times in a row. Not sure if this is something on my system causing this or if the save and load states are compromised somehow.
.niarb ym fo
snoitulovnoc eht tuaba
selbbarcs ssensuoicsnoc
rehgih a ekil smees
User avatar
K1n9_Duk3
Vorticon Elite
Posts: 850
Joined: Mon Aug 25, 2008 9:30
Location: Germany
Contact:

Re: Keen Dreams Gold Edition

Post by K1n9_Duk3 »

szemi wrote: Wed Jan 08, 2025 22:33
I'm gonna be the nicest guy ever and tell you what caused the lockups Syllypryde reported, because it took me a bit to figure it out myself. The score box sprite wasn't cached for the world map, which meant loading a game that was saved on the world map would always cause problems directly after starting up the game. It could also cause problems when loading such a saved game from within another game or when returning to the world map, but the chances of encountering the problem under those cirumstances were much smaller. You need to modify the code at the end of the ScanInfoPlane() function in KDG_PLAY.C as follows to make sure the correct score box sprite gets cached for every level:

Code: Select all

	// Cache "zee" sprites (which are in KEEN_LUMP) in level 23
	// Note (ktx58): It may be a good idea change the order of the sprites
	// so that the "zee" sprites can be moved into INLEVELSPRITES_LUMP
	if (gamestate.mapon == HELMETLESSLEVELNUM)
	{
		CA_MarkGrChunk(SCOREBOX2SPR);	// K1n9_Duk3 addition
		for (j=KEENZEES1SPR;j<=KEENZEES6SPR;j++)
			CA_MarkGrChunk(j);
	}
	else
	{
		CA_MarkGrChunk(SCOREBOXSPR);	// K1n9_Duk3 addition
	}
Since the score box sprite wasn't cached, but that sprite is being modified in-game to make it display the correct numbers for score, lives and ammo, the code ended up modifying the memory region starting at 0000:0000 in the computer's memory. That's where the interrupt vector table is stored, along with other data that is vital for the whole system. Overwriting the data in that area with the image data for the score box numbers is what caused DOSBox to either lock up or crash.

While I was trying to find the cause of this problem and a solution for it, I also noticed that it appears to be impossible to build a (fully) working executable from the source code. The KDGOLD.MHD file in the static directory is not the same file that is included in the KDGOLD.EXE file. When I compiled the code (with Borland C++ 3.0, which appears to be what was used to compile the project, judging by the directory settings in the project file), the game locked up directly after the text-based startup screen. It seems like some bad tile attributes in the KDGOLD.MHD file caused an infinite loop somewhere. Unpacking the executable and extracting the real MAPHEAD data from it gave me a KDGOLD.MHD file that allowed me to compile the code into a working executable.

I remember encountering a similar issue with at least one of the previous releases. Please try to be more careful when you prepare the next update. Putting the correct file in the static directory shouldn't be all that complicated. Providing the wrong version of KDGOLD.MHD in the source might be a violation of the GNU General Public License and could get you in trouble.

While I'm at it, I might as well mention something else that irritated me a bit. Having to push the "Load / Save Game" button on the left side and then still having to push the "Load or Save a Game" button on the top (even though there is no other option in that menu) seems like an odd choice to me, especially since the old version of Keen Dreams Gold as well as the original Keen Dreams show the list of saved games by default when clicking the button on the left side.

I modified the USL_SetUpCtlPanel code in ID_US.C as follows to restore the old behavior:

Code: Select all

	// Set up disk stuff - default to load/save game
	USL_TurnOff(CtlDPanels);
	CtlDPanels[0].sel = ui_Selected;
(The source files I downloaded used ui_Normal instead of ui_Selected here.)

The only thing that really annoys me gameplay-wise about this new revision (or what little I've played of it so far) is the addition of a turning/stopping state when Keen stops walking. It's not the animation that annoys me, it's the fact that Keen doesn't react to player input in this state. It makes the controls less responsive than in the previous versions and might be the cause of some unfair deaths. I tried to fix it myself by making s_keenturn and s_nhkeenturn use KeenPauseThink as their think routine, but the result wasn't optimal. Some jumps were cut short if Keen started jumping when the turning state was about to change into the normal standing state. Maybe this problem also exists in the "official" version without my modifications, I didn't really want to investigate this any further yesterday.

Other things that could still be improved:
- F7 is now an instant quit button (maybe it was in the older versions, too, I haven't checked). I thinks that's bad user interface design. It's way too easy to accidentally hit F7 when you're trying to hit another key, like F8 to toggle the score box. Good user interface should at least add a confirmation dialog. Keen 4-6 also had an instant quit option, but they used the combination CTRL-Q, which is far less likely to be pressed by accident (unless you're using an extremely weird control scheme).

- I think the game always starts up with music disabled when no config file exists yet. Was that done on purpose?

- Forcing the user to hold S in order to be able to make the screen scroll up or down seems a bit weird. The fact that you need to press S before starting to look down also confused me a bit. When looking up, I can press and release the S key whenever I want, but when Keen is already ducking, the S key has no effect at all. This inconsistency should probably be fixed. Also, since the scrolling feature is hard-coded to the S key, it means you can't remap the controls to WASD without running into problems. To be fair, the PageUp and PageDown keys that many other DOS games used for making the screen scroll up and down are already mapped to the Up+Left and Down+Left keys in the Keen games by default (probably for diagonal movement on the world map when using the keys in the num block), so you can't really use those.
Hail to the K1n9, baby!
http://k1n9duk3.shikadi.net
User avatar
Soul Monster
Vortininja
Posts: 240
Joined: Mon Jun 14, 2021 2:47
Location: An Arctic Hellscape

Re: Keen Dreams Gold Edition

Post by Soul Monster »

K1n9_Duk3 wrote: Tue Jan 14, 2025 10:17 The only thing that really annoys me gameplay-wise about this new revision (or what little I've played of it so far) is the addition of a turning/stopping state when Keen stops walking. It's not the animation that annoys me, it's the fact that Keen doesn't react to player input in this state. It makes the controls less responsive than in the previous versions and might be the cause of some unfair deaths. I tried to fix it myself by making s_keenturn and s_nhkeenturn use KeenPauseThink as their think routine, but the result wasn't optimal. Some jumps were cut short if Keen started jumping when the turning state was about to change into the normal standing state. Maybe this problem also exists in the "official" version without my modifications, I didn't really want to investigate this any further yesterday.
I second this. I've only played through a few levels so far, and this has been a source of frustration for me playing version 2. This addition makes Keen's movements more delayed, unresponsive, and jittery, which has resulted in getting killed by enemies several times. It slows down the gameplay and makes basic mechanics like jumping much more tedious.

Also, just like other players are saying, I'm having crashing issues, but I haven't been able to pin down exactly when and where this happens yet.

Other than that, this is fantastic work!
"Remember to be happy, and keep smiling, and have hope, and know that there's sunshine everywhere. Just look around, and you'll find it."
User avatar
szemi
Vorticon Elite
Posts: 1769
Joined: Sun Jan 11, 2009 15:19
Location: Hungary
Contact:

Re: Keen Dreams Gold Edition

Post by szemi »

Soul Monster wrote: Thu Jan 16, 2025 1:27 Also, just like other players are saying, I'm having crashing issues, but I haven't been able to pin down exactly when and where this happens yet.
I'm still having nasty bugs, too. And like you said, I say the same: I haven't been able to pin down exactly when and where this happens yet. (But for the next update, some are fixed.)

But no worries, that "frustrating" sprite is just a test that I left behind for you to test if it's frustrating or okay...
Yeah, piece of cake!
User avatar
szemi
Vorticon Elite
Posts: 1769
Joined: Sun Jan 11, 2009 15:19
Location: Hungary
Contact:

Re: Keen Dreams Gold Edition

Post by szemi »

The download link is available now as I have fixed the mapheader. The other bugs take time to fix, but I'm trying to be as good as before in the project!
Yeah, piece of cake!
User avatar
Quillax
Vorticon Elite
Posts: 665
Joined: Sat Mar 14, 2015 14:41
Location: Quillax Ship
Contact:

Re: Keen Dreams Gold Edition

Post by Quillax »

What's the version number for this mod? From what I can tell, it would be version 1.2, correct?
Quillax Ship - Where you can download all of my cool, keen mods and super-marvelous fangames!
User avatar
szemi
Vorticon Elite
Posts: 1769
Joined: Sun Jan 11, 2009 15:19
Location: Hungary
Contact:

Re: Keen Dreams Gold Edition

Post by szemi »

Only the update's date. No version number. Latest is 2025-01-18.
Yeah, piece of cake!
User avatar
Syllypryde
Vorticon Elite
Posts: 1100
Joined: Tue Jan 20, 2009 18:33
Location: Michigan
Contact:

Re: Keen Dreams Gold Edition

Post by Syllypryde »

szemi wrote: Sat Jan 18, 2025 19:27 The download link is available now as I have fixed the mapheader. The other bugs take time to fix, but I'm trying to be as good as before in the project!
Unfortunately most of us are not going to download an update that you publicly admit still has massive bugs. Also most of us aren't going to download 3+ different updates just because you chose to update after every bugfix rather than getting all the bugs fixed and releasing these fixes all in one update. This suggestion was also made to Sodium after 3+ updates to one of his own projects simply because he allegedly never play tested his mod to make sure all the levels were solvable. Once you get everything straightened out I will be happy to download and play it. Until then I will downgrade to your original Gold and play that or play something else.
.niarb ym fo
snoitulovnoc eht tuaba
selbbarcs ssensuoicsnoc
rehgih a ekil smees
Post Reply