Re: Keen 13: The Ultra Omegamatic
Posted: Tue May 05, 2020 9:27
Sorry very much for the bugs .I will fix them
This is neat.
https://pckf.com/
Good news. I fixed the bugs, but I've modified some things in the levels and in the patches.K1n9_Duk3 wrote: ↑Mon May 04, 2020 21:44 This mod definitely needs some bugfixing. I can almost guarantee that saving and loading a game with a stunned Volte in it is gonna cause "RF_PlaceSprite" crashes for some people.
And the fact that the game *ALWAYS* shows the "Null pointer assignment" error message after quitting pretty much tells me that you either have no idea how to patch things properly or you just don't care.
Code: Select all
# disable the EGAGRAPH.CK5 merging code entirely
# -> frees up $30425-$304BD (153 bytes) for dseg variables
# -> frees up $3CC1-$3E74 (436 bytes) for code or far strings
%patch $3E78
$90 $90 $90 $90
Code: Select all
################
#Volteface #
################
#Initial Volte-face direction: Right
%patch $10B93 $C7 $47 $0E $0001W
%patch $10B10 $0001W
#New Volte-face actions, act like a horizontal platform
%patch $3200C $01A1W $01A3W $0003W $0000W $0000W $0006W $0000W $0000W
$0F92127ERL $0F92149DRL $090B17B5RL $1CEAW
%patch $3202A $01A2W $01A4W $0003W $0000W $0000W $0006W $0000W $0000W
$0F92127ERL $0F92149DRL $090B17B5RL $1CCCW
#Stunned Volte-face stuns permanently
%patch $32084 $01A5W $01A5W $0002W $0000W $0000W $0000W $0000W $0000W
$090B1710RL $00000000L $090B195ARL $0000W
#Custom Volte-Face speed
%patch $10B9E $55 $8B $EC $83 $EC $04 $56 $57 $8B $7E $06 $83 $3E $85 $BF $00
$75 $1F $83 $3E $83 $BF $00 $75 $18 $8B $45 $0E $BA $0020W $F7
$EA $F7 $2E $B4 $9B $A3 $85 $BF $8B $45 $10 $BA $0020W $E9
$F721W $5F $5E $8B $E5 $5D $CB
###########################
# K1n9_Duk3 fix:
# --------------
# Make sure Volte's stunned stars don't cause RF_PlaceSprite errors after loading a saved game
%patch $10DD6
$B8 $1D44w # mov ax, offset s_voltestunned
$50 # push ax
$56 # push si
$FF $76 $06 # push bp+arg_0
$9A $090B16CDrl # call StunContact
$83 $C4 $06 # add sp, 6
$5E # pop si
$5D # pop bp
$CB # retf
###########################
I played and completed this game on easy and normal. Personally I didn't really see any bugs, glitches, out of memory, error messages, or other issues. Then again I'm not a modder so I am fully unaware of the inner workings of mods and level packs. You being a seasoned pro in that area you know better than I how stable or unstable the game is.K1n9_Duk3 wrote: ↑Fri May 08, 2020 22:34 ......I can't really say much about the actual gameplay or the levels. I don't think I've gotten past the very first shikadi in the first level on easy, at least not without godmode. That part already gave me the impression that the difficulty isn't balanced all that well. Maybe others have no problem with the difficutly, but I sure won't be playing this mod any further. I am easily frustrated and if I feel that your mod isn't giving me a fair chance, then I won't be giving your mod a fair chance either.
Thank you for these patchesK1n9_Duk3 wrote: ↑Fri May 08, 2020 22:34 Hey, I think my previous post was a bit harsh. Sorry about that. I'll try to be more relaxed this time.
I just downloaded v1.2 and noticed a couple of things right away:That's all for now. If you need help with your patches, feel free to ask. I'll try to help if I have time.
- The download contains KEEN5E.EXE. I guess that will have to be removed before your mod can be added to the KeenWiki.
- The "Null pointer assignment" error is still there. I'm pretty sure the only reason why the program shows this error message when quitting is that you replaced the Borland Copyright string with other strings for your game. If that's the case, then the error message could be ignored. But as it is, seeing this message doesn't exactly make me confident about your patching skills, since this error message usually means that something has gone wrong while the program was running, thus indicating a serious problem in your patches. Because of that, I think it's best to leave the copyright string intact, so that the Null pointer check can actually do its job and warn you when something actually did go wrong.
There are lots of other strings that you could replace instead of overwriting the Copyright message. For example, if you disable the EGAGRAPH check with this patch:you can use $30425-$304BD to store the strings that overwrite the copyright string in the current version. In case you forgot, it's the "Keen attacks a Fuse Quantum" message. That message is patched multiple times in the patch file, all with the same offset, so if you decide to move them to a different offset be sure to modify all of them and not just one. Or modify one of them and delete all the others.Code: Select all
# disable the EGAGRAPH.CK5 merging code entirely # -> frees up $30425-$304BD (153 bytes) for dseg variables # -> frees up $3CC1-$3E74 (436 bytes) for code or far strings %patch $3E78 $90 $90 $90 $90
- The problem with the Volteface was that you made it change into a state that displays the stunned stars, but you didn't do it corrently. The stunned stars use a second sprite slot and that sprite needs to be removed when the enemy is no longer visible. And the variable that holds the pointer to that sprite must be set to 0 (Null pointer) when that enemy is loaded from a saved game. But the enemy's type value must be set to the "stunned enemy" type, otherwise the game won't know that this enemy uses the stunned stars sprite and therefore doesn't handle it correctly.
I see that you have removed the stunnable volteface and that you are using the regular Keen 5 version of that enemy now. That sure is one way to fix that bug. Another way would have been to add a little patch to your existing volteface patches:Code: Select all
################ #Volteface # ################ #Initial Volte-face direction: Right %patch $10B93 $C7 $47 $0E $0001W %patch $10B10 $0001W #New Volte-face actions, act like a horizontal platform %patch $3200C $01A1W $01A3W $0003W $0000W $0000W $0006W $0000W $0000W $0F92127ERL $0F92149DRL $090B17B5RL $1CEAW %patch $3202A $01A2W $01A4W $0003W $0000W $0000W $0006W $0000W $0000W $0F92127ERL $0F92149DRL $090B17B5RL $1CCCW #Stunned Volte-face stuns permanently %patch $32084 $01A5W $01A5W $0002W $0000W $0000W $0000W $0000W $0000W $090B1710RL $00000000L $090B195ARL $0000W #Custom Volte-Face speed %patch $10B9E $55 $8B $EC $83 $EC $04 $56 $57 $8B $7E $06 $83 $3E $85 $BF $00 $75 $1F $83 $3E $83 $BF $00 $75 $18 $8B $45 $0E $BA $0020W $F7 $EA $F7 $2E $B4 $9B $A3 $85 $BF $8B $45 $10 $BA $0020W $E9 $F721W $5F $5E $8B $E5 $5D $CB ########################### # K1n9_Duk3 fix: # -------------- # Make sure Volte's stunned stars don't cause RF_PlaceSprite errors after loading a saved game %patch $10DD6 $B8 $1D44w # mov ax, offset s_voltestunned $50 # push ax $56 # push si $FF $76 $06 # push bp+arg_0 $9A $090B16CDrl # call StunContact $83 $C4 $06 # add sp, 6 $5E # pop si $5D # pop bp $CB # retf ###########################
- The projectiles that the shikadi shoot will actually fly through walls. I'm not sure if this was intentional. The pole sparks, on which your new projectiles are based, were always spawned in noclip mode, so that they can move through the pole holes. Simply turning noclip off won't do the rtick, though. You need to add also some code that makes the projectiles vanish when they hit a wall. Otherwise they'll get just stuck when they hit a wall.
I can't really say much about the actual gameplay or the levels. I don't think I've gotten past the very first shikadi in the first level on easy, at least not without godmode. That part already gave me the impression that the difficulty isn't balanced all that well. Maybe others have no problem with the difficutly, but I sure won't be playing this mod any further. I am easily frustrated and if I feel that your mod isn't giving me a fair chance, then I won't be giving your mod a fair chance either.
I'm now working on the possible sequels: The Secret of the Sorcerer or The Armageddon ContinuesSyllypryde wrote: ↑Sat May 09, 2020 1:28I played and completed this game on easy and normal. Personally I didn't really see any bugs, glitches, out of memory, error messages, or other issues. Then again I'm not a modder so I am fully unaware of the inner workings of mods and level packs. You being a seasoned pro in that area you know better than I how stable or unstable the game is.K1n9_Duk3 wrote: ↑Fri May 08, 2020 22:34 ......I can't really say much about the actual gameplay or the levels. I don't think I've gotten past the very first shikadi in the first level on easy, at least not without godmode. That part already gave me the impression that the difficulty isn't balanced all that well. Maybe others have no problem with the difficutly, but I sure won't be playing this mod any further. I am easily frustrated and if I feel that your mod isn't giving me a fair chance, then I won't be giving your mod a fair chance either.
I liked the level design and placement of enemies for the most part. My issues with the game were the too generic names for the levels, the ridiculously obvious path to Greenland Base (no real secret here), the ridiculously overabundance of ray guns and extra lives (many Keeners consider 1Up's useless anyway), a lack of secret areas, and the short almost anti-climatic final level and ending.
It was a decent first go, better than I could ever hope to do, but I hope his next go will be a big improvement. He definitely has potential.
I did everything you told me, but nothing happened. Try applying these patches in your file and if they works, send me the file in a private messageK1n9_Duk3 wrote: ↑Sun May 10, 2020 22:59 Seriously?
That null pointer assignment error is still there! Why did you put in the patch that disables the EGAGRAPH check and then decide not to do anything with the memory you just made available? You should have moved that level entry string I told you about into that memory region. Did you just copy the patch scripts without actually reading or understanding what I wrote?
Let's go through it again step by step. Your patch script is overwriting parts of the string "Borland C++ - Copyright 1991 Borland Intl." with the following patch command (line 172):
Code: Select all
%patch $30340 "Keen attacks a" $0A "Fuse Quantum" $00
Code: Select all
%patch $30425 "Keen attacks a" $0A "Fuse Quantum" $00
Code: Select all
%patch $201E3 "High Scores"