VOGONS


First post, by Kimo Xvirus

User metadata
Rank Newbie
Rank
Newbie

Ok, so this problem is specifically about Doom games and I know that there are source ports for it but I have a reason to use the original executables
I'm sorry but this problem is too specific to this game
It's about speedrunning and recording demos, we have to use the -warp paramater to load a certain map in the game and play it right away, we try to run fast right from the start
in original MS-DOS, you can press both forward and a strafe button easily (during loading, cause the game movements is loaded slightly before the environment of the game and these second fragments matter in speedrunning) and both of the buttons work
while in DOSBox, I can only seem to press either forward or a strafe button, When I'm holding both keys during loading, one of them acitvate and I have to lift my finger from the key that isn't working then pressing it again so it's acitvated
In short I want multiple buttons to be able to be activated right at the start of the game easily
Please if you don't understand any of this, post here and I can explain it further (sorry for my bad english). But please try to implement this, cause that's a normal behaviour of MS-DOS and it's about games.

Thanks,

Reply 1 of 10, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

But it's not a general problem, right? Like on my keyboard some key combinations
simply don't work (like shift+certain alpha keys).
Anyways try to remap the keys (using the dosbox keymapper or the doom setup),
does that help?

Reply 2 of 10, by Kimo Xvirus

User metadata
Rank Newbie
Rank
Newbie

It's not a general problem with the keyboard
I'll tell you something to try if you have doom2 for example
launch doom2 with this command doom2.exe -warp 1
and in the text graphic loading of the game when the "init Doom refresh Daemon" dots finish, press the buttons (Forward & strafe right or strafe left, check these keys in doom setup)Only one of them (Either forward or the strafe) will work in DOSBox
While in real MS-DOS, when you press the same buttons at that time, both of them activate
In that moment the first 1/35 --> 7/35 of a second of the game movement is applied and speedrunners battle for seconds you know. That trick isn't as hard as it sounds

Please try to fix that

Thanks in advance 😁

Last edited by Kimo Xvirus on 2009-01-11, 05:21. Edited 1 time in total.

Reply 3 of 10, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

are you sure that it works with that keyboard + controller in real dos ?
dosbox can't work around problems with your own keyboard.
thought our keyboard emulation + key repeat was emulated correctly

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

Reply 4 of 10, by wildweasel

User metadata
Rank Member
Rank
Member

Does the same issue occur with the Chocolate Doom port? Chocolate Doom aims to be as close to doom(2).exe as possible but runs natively in just about any OS, and is supposed to use the exact same demo format as the original EXE.

wwsig2-button1.pngwwsig2-center.pngwwsig2-button2.png

Reply 5 of 10, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Please try to fix that

Please check the stuff i told before. As Qbix said we can't "fix" problems that
are inherent to "modern" keyboards, though you should in most cases be able
to work around it by using different key combinations.

Reply 6 of 10, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

I don't think it is particular keyboard hardware that brings out the behavior, because the keys combos work fine when you use them after the game is started up. It's when you hold keys down while it's starting up that something happens. This is for DOOM engine games; might not happen with other games.

Straferunning usually has you using a shift key for "Speed On", but even if you remap all keys in the combo to A-Z keys, it still doesn't see them all as being held down if you're holding them down when the game is starting up. It may have something to do with the keypress events occuring before the game initializes its keyboard handling.

Not sure if this example is directly related to the issue, but try this: hold down one of the shift keys (shift, ctrl, or alt) right after you run the game. When you get to menu, release the key and navigate the menu to quit the game. Then typing at the prompt you should see it acting like the shift key you were holding down is still held down; and continues to act that way until you press and release that shift key again.

Reply 8 of 10, by Kimo Xvirus

User metadata
Rank Newbie
Rank
Newbie

@wd I haven't tried what you said, but I'm only pressing 2 buttons in a PS/2 keyboard [forward & strafe right]
I enabled autorunning by editing the cfg of the game manually (Can't be done from doom setup)
I think it's related to the issue rigsaw8080 talked about

Reply 9 of 10, by ADDiCT

User metadata
Rank Oldbie
Rank
Oldbie

Whatever the problem may be, recreating timing sensitive behaviour on an emulator won't ever work as well as on original hardware. Emulation uses up a lot of CPU cycles (no matter how fast your CPU is), has different timing compared to original hardware, has to cope with host OS problems/bugs/effects and timing, etc. . If you are really trying to do a "professional" speedrun, you probably should build a DOS PC, or live with DOSBox' "limitations".

Just look at, for example, SNES or Genesis (Mega Drive) emulation. Even though modern PC's have multiple times the processing power of these consoles (compared to a modern PC, one of these consoles is like a pocket calculator), the original hardware is "fixed" and well-documented, and the emulators have been in development for more than a decade now, there are still lots of timing problems in the emulation. DOS/PC's are much more complicated to emulate.

Reply 10 of 10, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

as i said on irc. there might be a resolution change involved which will make dosbox loose the keys which are pressed.

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