VOGONS


Keen 4-6 on EGA and VGAONLY machine types

Topic actions

First post, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

Commander Keen 4-6 does not display properly on the latest DOSBox SVNs with machine type ega or vgaonly, but does on vanilla DOSBox 0.74. The animation with the ega machine type is very shaky in the SVN where it is smooth in 0.74 or using the svga_s3 machine type. With VGA only, the shaking animation goes away, but there is a flickering black line running across the screen that should not be there.

When measuring the framerate of these games with FRAPS, 0.74 gives no more than 35fps but SVN gives 60 with EGA machine type. Is this related?

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 1 of 20, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The black flickering line with machine=vgaonly appears in other Id side-scrollers, such as Shadow Knights and Dangerous Dave 2, but it didn't cause immediate concern for me because the problem doesn't appear with machine=svga_s3, and it's in 0.74 as well.

Reply 2 of 20, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

There are different versions of Keen 4-6 out there (or Keen 4, at least); some of the later ones include a "Fix Jerky Motion" menu option. (Seriously, that's what it's called.) Are you using a version with that option? Does it fix things?

Reply 3 of 20, by Great Hierophant

User metadata
Rank l33t
Rank
l33t
Jorpho wrote:

There are different versions of Keen 4-6 out there (or Keen 4, at least); some of the later ones include a "Fix Jerky Motion" menu option. (Seriously, that's what it's called.) Are you using a version with that option? Does it fix things?

Yes, no. I'm using 1.4 of Keen 4-5, 1.5 of Keen 6.

The issue with the jerky movement only manifests itself with horizontal scrolling, vertical scrolling is fine.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 4 of 20, by h-a-l-9000

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Anyone know how it behaves on an IBM EGA? My EGA clones also show the horizontal shaking.

1+1=10

Reply 5 of 20, by NY00123

User metadata
Rank Member
Rank
Member

Regarding the versions, there isn't just one release tagged "1.4".
For a collection of Keen 4 versions see http://www.shikadi.net/keenwiki/Keen_4_Versions.

An old IRC log I've gotten shows that the change in behaviors of DOSBox occurs in r3621.

Reply 6 of 20, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The game's /NOPAN command line switch seems to eliminate the shuddering, but the intro is skipped and the scrolling is less than smooth.

Reply 7 of 20, by Great Hierophant

User metadata
Rank l33t
Rank
l33t
NY00123 wrote:

Regarding the versions, there isn't just one release tagged "1.4".
For a collection of Keen 4 versions see http://www.shikadi.net/keenwiki/Keen_4_Versions.

An old IRC log I've gotten shows that the change in behaviors of DOSBox occurs in r3621.

I am using Keen 4 and 5 1.4 Apogee and Keen 6 1.5 FormGen. Nice site, I never knew about it. The /nopan parameter will fix the jerky motion, but at the expense of smooth scrolling. The scrolling is like the CGA version.

If I still had my IBM EGA card, I could find out, but I don't 😖

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 8 of 20, by Robin4

User metadata
Rank l33t
Rank
l33t

Thats why i didnt choose doxbox at the first place.. The original hardware is always the best bet to count on.

~ At least it can do black and white~

Reply 9 of 20, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

It jerks in the exact same way on my Everex EGA card. Perhaps it doesn't work on real EGA cards, but does work on VGA cards. Alternatively, perhaps it only works on either the original IBM card or a particular clone card. You would think that if the game had jerky scrolling on many EGA cards that users would complain and the EGA compatibility would be relaxed for later releases.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 10 of 20, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

The black horizontal line in the vgaonly machine type can be fixed in Keen 4-6 by using the SVGA compatibility option. Fortunately this is available in all versions of these games. The Jerky scrolling fix requires 1.2 of Keen 4 or 1.4 of Keen 5 and 6 (there is no version 1.2 for these games).

Keen Dreams also shows the line in vgaonly, the /comp command line switch will fix it.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 11 of 20, by Harekiet

User metadata
Rank DOSBox Author
Rank
DOSBox Author

what about the original trilogy? Dont' think that had the svga compatibility option. IBM screwed up with that damn pel panning caching.

Reply 12 of 20, by NY00123

User metadata
Rank Member
Rank
Member

If I don't miss anything then I don't think there are much problems in Keen 1 (v1.31, Apogee Software release) with machine=ega, in contrary to the situation with Keen 4 for the EGA/VGA (v1.4, Apogee Software release).

Another game for which the scrolling seems to be OK with machine=ega is Keen Dreams for the EGA/VGA (v1.31, Softdisk Publishing release).

It should be noted that you can find more lists of Keen versions on the KeenWiki, along with downloads for the shareware/demo releases.
For instance, Keen Dreams: http://www.shikadi.net/keenwiki/Keen_Dreams_Versions

As for Keen 4-6 (and probably Dreams too), even though the various executables may refer to the CGA and the EGA, it seems like the games were made with a VGA (or compatible) in mind. The reason is that the in-game framerate is close to 35fps, which is about half the refresh rate of the monitor when a VGA (or sufficiently compatible) is used. This is also the case in the CGA releases (just checked with Keen 4).

Reply 13 of 20, by h-a-l-9000

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The black line can easily be fixed:

1+1=10

Reply 14 of 20, by truth_deleted

User metadata

The patch looks interesting. Edit: confirmed that the "VGA_Draw_Xlat16_Linear_Line" function is specific to vgaonly mode (and ega). Also, that the "GCC_UNLIKELY" macro is related to gcc optimizations, not the use of gcc itself in compiling.

Last edited by truth_deleted on 2013-12-19, 04:49. Edited 1 time in total.

Reply 15 of 20, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

I compiled with the diff and the black line is gone in Keen 4-6. The change also seems to fix the issue of the jerky graphics on the status bar of Secret Agent in vgaonly. Here is the compiled version.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 16 of 20, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

Having performed more tests with my EGA card, I was able to fix the jerky scrolling on real hardware. On a 486DX2/66, three things had to be in place on my system to fix the problem. First, DOS must be configured to use Expanded Memory. Second, the Fix Jerky Motion setting must be ON in each game. Third, the cache must be disabled with cacheoff or a similar program prior to running the game. With all these things in place, no more jerky motion. Apparently the code ID used for these games was very speed sensitive when combined with an EGA card. With a VGA card, the problem does not seem to manifest itself regardless of speed. Also, because you can run the games with a faster processor, the game will play more smoothly with VGA. Harekiet's use of the word caching gave me the clue.

To replicate the speed condition in DOSBox, I set the cputype to 386_slow, core to normal and cycles to 2400. If the cycles goes to 2500, the problem will reassert itself. The reported frame rate hovers around 35fps, which seems to be the correct max frame rate for this game.

By the way, in Secret Agent the last visible active line, on the status bar, is multicolored with the ega machine type whereas it is totally black with any vga machine type. This was identical to the output of my EGA and VGA card in my 486.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 17 of 20, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author
h-a-l-9000 wrote:

The black line can easily be fixed:

ah nice one!

Water flows down the stream
How to ask questions the smart way!

Reply 18 of 20, by NY00123

User metadata
Rank Member
Rank
Member
Great Hierophant wrote:

To replicate the speed condition in DOSBox, I set the cputype to 386_slow, core to normal and cycles to 2400. If the cycles goes to 2500, the problem will reassert itself. The reported frame rate hovers around 35fps, which seems to be the correct max frame rate for this game.

Your instructions seem to do the job here. Thanks for figuring this out!

One note about the Fix Jerky Motion setting: It can be toggled on within the game (from that sub-menu). In addition, it can also be toggled on by adding the command line argument /JERK upon loading the executable code (as hinted in the help section, "Computer Wrist"), *if* the configuration file (say CONFIG.CK4) does not exist at that point. Otherwise, it looks like the setting saved in this file takes precedence.

Reply 19 of 20, by dr.zeissler

User metadata
Rank l33t
Rank
l33t
Great Hierophant wrote:

Having performed more tests with my EGA card, I was able to fix the jerky scrolling on real hardware. On a 486DX2/66, three things had to be in place on my system to fix the problem. First, DOS must be configured to use Expanded Memory. Second, the Fix Jerky Motion setting must be ON in each game. Third, the cache must be disabled with cacheoff or a similar program prior to running the game. With all these things in place, no more jerky motion. Apparently the code ID used for these games was very speed sensitive when combined with an EGA card. With a VGA card, the problem does not seem to manifest itself regardless of speed. Also, because you can run the games with a faster processor, the game will play more smoothly with VGA. Harekiet's use of the word caching gave me the clue.

To replicate the speed condition in DOSBox, I set the cputype to 386_slow, core to normal and cycles to 2400. If the cycles goes to 2500, the problem will reassert itself. The reported frame rate hovers around 35fps, which seems to be the correct max frame rate for this game.

By the way, in Secret Agent the last visible active line, on the status bar, is multicolored with the ega machine type whereas it is totally black with any vga machine type. This was identical to the output of my EGA and VGA card in my 486.

Hi, my 286/8 ET4000 has massive Problems with all Apogee Titles. I was hoping to find an et4000 fix, because some titles do not have a fix at all. the svga-patch in some games makes it even worse.

Retro-Gamer 😀 ...on different machines